From f4b46749e91b2f3df41754d04897ed1f2e795291 Mon Sep 17 00:00:00 2001 From: Nicolas Lorusso Date: Mon, 24 Jul 2023 14:55:32 -0300 Subject: [PATCH 01/24] implemented chat message copy to clipboard and namespace refactoring --- .../Controllers/ChatController/ChatUtils.cs | 6 + .../HUD/ChatWidgetHUD/ChatEntry.cs | 3 +- .../HUD/ChatWidgetHUD/ChatHUD.asmdef | 3 +- .../HUD/ChatWidgetHUD/ChatHUDController.cs | 780 +++++------ .../HUD/ChatWidgetHUD/ChatHUDView.cs | 8 +- .../ChatMentionSuggestionComponentView.cs | 2 +- ...ChatMentionSuggestionEntryComponentView.cs | 2 +- .../ChatMentionSuggestionModel.cs | 2 +- .../HUD/ChatWidgetHUD/DateSeparatorEntry.cs | 108 +- .../HUD/ChatWidgetHUD/DefaultChatEntry.cs | 13 +- .../ChatWidgetHUD/DefaultChatEntryFactory.cs | 6 +- .../HUD/ChatWidgetHUD/IChatEntryFactory.cs | 4 +- .../ChatWidgetHUD/IChatHUDComponentView.cs | 20 +- .../HUD/ChatWidgetHUD/PoolChatEntryFactory.cs | 10 +- .../Tests/ChatHUDControllerShould.cs | 784 +++++------ .../ChatWidgetHUD/Tests/ChatHUDTests.asmdef | 3 +- .../ChatWidgetHUD/Tests/ChatHUDViewShould.cs | 2 +- .../Tests/DateSeparatorEntryShould.cs | 3 +- .../Tests/DefaultChatEntryShould.cs | 2 +- .../DCL/Controllers/HUD/HUD.asmdef | 3 +- .../DCL/Controllers/HUD/HUDController.cs | 3 +- .../DCL/Controllers/HUD/HUDFactory.cs | 12 +- .../PoolPrivateChatEntryFactory.cs | 13 +- .../PrivateChatWindow/PrivateChatHUDView.cs | 2 +- .../PrivateChatWindowComponentView.cs | 2 +- .../PrivateChatWindowController.cs | 619 ++++----- .../PrivateChatWindowHUD.asmdef | 3 +- .../PrivateChatWindowControllerShould.cs | 602 ++++----- .../Tests/PrivateChatWindowHUDTests.asmdef | 3 +- .../Addressables/ChatChannelHUD.prefab | 12 +- .../HUD/TaskbarHUD/TaskbarHUDController.cs | 3 +- .../HUD/TaskbarHUD/Tests/TaskbarHUDShould.cs | 12 +- .../TaskbarHUD/Tests/TaskbarHUDTests.asmdef | 3 +- .../ChannelContextualMenu.cs | 10 +- .../WorldChatWindowHUD/ChannelEntryFactory.cs | 7 +- .../ChannelJoinErrorWindowComponentView.cs | 3 +- .../ChannelJoinErrorWindowController.cs | 7 +- .../ChannelJoinErrorWindowPlugin.cs | 3 +- .../ChannelLeaveErrorWindowComponentView.cs | 3 +- .../ChannelLeaveErrorWindowController.cs | 8 +- .../ChannelLeaveErrorWindowPlugin.cs | 3 +- .../ChannelLimitReachedWindowComponentView.cs | 3 +- .../ChannelLimitReachedWindowController.cs | 5 +- .../ChannelLimitReachedWindowPlugin.cs | 5 +- .../WorldChatWindowHUD/ChannelLinkDetector.cs | 3 +- .../WorldChatWindowHUD/ChannelMemberEntry.cs | 5 +- .../ChannelMemberEntryModel.cs | 4 +- .../ChannelMembersComponentView.cs | 3 +- .../ChannelMembersHUDController.cs | 14 +- .../ChatChannelComponentView.cs | 2 +- .../ChatChannelHUDController.cs | 12 +- ...llapsableChannelMemberListComponentView.cs | 5 +- .../CollapsableChatSearchListComponentView.cs | 3 +- .../CollapsableDirectChatListComponentView.cs | 180 +-- ...llapsablePublicChannelListComponentView.cs | 3 +- .../CreateChannelWindowComponentView.cs | 3 +- .../CreateChannelWindowController.cs | 5 +- .../IChannelJoinErrorWindowView.cs | 4 +- .../IChannelLeaveErrorWindowView.cs | 4 +- .../IChannelLimitReachedWindowView.cs | 4 +- .../IChannelMembersComponentView.cs | 3 +- .../IChatChannelWindowView.cs | 2 +- .../ICreateChannelWindowView.cs | 4 +- ...eChannelConfirmationWindowComponentView.cs | 4 +- .../IPromoteChannelsToastComponentView.cs | 4 +- .../IPublicChatWindowView.cs | 36 +- .../ISearchChannelsWindowView.cs | 4 +- .../IWorldChatWindowView.cs | 82 +- ...ChannelConfirmationWindowComponentModel.cs | 4 +- ...eChannelConfirmationWindowComponentView.cs | 2 +- ...eaveChannelConfirmationWindowController.cs | 6 +- .../NearbyMembersHUDController.cs | 5 +- .../WorldChatWindowHUD/PrivateChatEntry.cs | 3 +- .../PrivateChatEntryModel.cs | 4 +- .../WorldChatWindowHUD/PrivateChatModel.cs | 17 +- ...PromoteChannelsToastComponentController.cs | 4 +- .../PromoteChannelsToastComponentView.cs | 2 +- .../PromoteChannelsToastPlugin.cs | 2 +- .../HUD/WorldChatWindowHUD/PublicChatEntry.cs | 3 +- .../PublicChatEntryModel.cs | 4 +- .../HUD/WorldChatWindowHUD/PublicChatModel.cs | 61 +- .../PublicChatWindowComponentView.cs | 200 +-- .../PublicChatWindowController.cs | 15 +- .../SearchChannelsWindowComponentView.cs | 2 +- .../SearchChannelsWindowController.cs | 3 +- .../Tests/ChannelContextualMenuShould.cs | 2 +- ...annelJoinErrorWindowComponentViewShould.cs | 2 +- .../ChannelJoinErrorWindowControllerShould.cs | 10 +- ...nnelLeaveErrorWindowComponentViewShould.cs | 2 +- ...ChannelLeaveErrorWindowControllerShould.cs | 10 +- ...elLimitReachedWindowComponentViewShould.cs | 2 +- ...annelLimitReachedWindowControllerShould.cs | 6 +- .../Tests/ChannelLinkDetectorShould.cs | 2 +- .../Tests/ChannelMemberEntryShould.cs | 73 +- .../ChannelMembersComponentViewShould.cs | 347 ++--- .../ChannelMembersHUDControllerShould.cs | 318 ++--- .../Tests/ChatChannelComponentViewShould.cs | 2 +- .../Tests/ChatChannelHUDControllerShould.cs | 6 +- ...psableChatSearchListComponentViewShould.cs | 2 +- .../CreateChannelWindowComponentViewShould.cs | 2 +- .../CreateChannelWindowControllerShould.cs | 82 +- ...elConfirmationWindowComponentViewShould.cs | 2 +- ...annelConfirmationWindowControllerShould.cs | 4 +- .../Tests/NearbyMembersHUDControllerShould.cs | 194 +-- .../Tests/PrivateChatEntryShould.cs | 140 +- ...eChannelsToastComponentControllerShould.cs | 114 +- ...PromoteChannelsToastComponentViewShould.cs | 94 +- .../Tests/PublicChannelEntryShould.cs | 96 +- .../Tests/PublicChatEntryShould.cs | 2 +- .../PublicChatWindowComponentViewShould.cs | 175 +-- .../Tests/PublicChatWindowControllerShould.cs | 503 +++---- ...SearchChannelsWindowComponentViewShould.cs | 2 +- .../SearchChannelsWindowControllerShould.cs | 17 +- .../WorldChatWindowComponentViewShould.cs | 824 ++++++------ .../Tests/WorldChatWindowControllerShould.cs | 1192 +++++++++-------- .../Tests/WorldChatWindowHUDTests.asmdef | 3 +- .../WorldChatWindowHUD/TimestampExtensions.cs | 10 - .../TimestampExtensions.cs.meta | 11 - .../WorldChatWindowComponentView.cs | 3 +- .../WorldChatWindowController.cs | 1186 ++++++++-------- .../WorldChatWindowHUD.asmdef | 3 +- .../WorldChatWindowModel.cs | 4 +- .../PluginSystem/PluginSystemFactory.cs | 3 +- 123 files changed, 4709 insertions(+), 4581 deletions(-) delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/TimestampExtensions.cs delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/TimestampExtensions.cs.meta diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/ChatController/ChatUtils.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/ChatController/ChatUtils.cs index 8a0c312e77..1260ff15a9 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/ChatController/ChatUtils.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/ChatController/ChatUtils.cs @@ -15,5 +15,11 @@ public static string AddNoParse(string message) filteredMessage = filteredMessage.Insert(filteredMessage.Length, ""); return filteredMessage; } + + public static string RemoveNoParse(string message) + { + return message.Replace("", "") + .Replace("", ""); + } } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatEntry.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatEntry.cs index e747f09e67..1abeb0ca7b 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatEntry.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatEntry.cs @@ -1,7 +1,7 @@ using System; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public abstract class ChatEntry : MonoBehaviour { @@ -14,6 +14,7 @@ public abstract class ChatEntry : MonoBehaviour public abstract event Action OnTriggerHoverGoto; public abstract event Action OnCancelHover; public abstract event Action OnCancelGotoHover; + public abstract event Action OnCopyClicked; public abstract ChatEntryModel Model { get; } public abstract void Populate(ChatEntryModel model); diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatHUD.asmdef b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatHUD.asmdef index 11297ee952..929c7b40fb 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatHUD.asmdef +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatHUD.asmdef @@ -32,7 +32,8 @@ "GUID:5cd5fb11f1b1d104586dec3f36722223", "GUID:55b66aa56b81d2d4cafb4a5f02bc90ca", "GUID:2995626b54c60644988f134a69a77450", - "GUID:e31367fcee1378a4e83de1f9cd2c161d" + "GUID:e31367fcee1378a4e83de1f9cd2c161d", + "GUID:e5b8a8ed154ad624f99bcb73d3284a90" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatHUDController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatHUDController.cs index 5dd6bfd4a9..e698b00646 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatHUDController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatHUDController.cs @@ -1,10 +1,7 @@ using Cysharp.Threading.Tasks; -using DCL; using DCL.Chat; -using DCL.Chat.HUD; using DCL.Interface; using DCL.ProfanityFiltering; -using DCL.Social.Chat; using DCL.Social.Chat.Mentions; using DCL.Tasks; using SocialFeaturesAnalytics; @@ -15,163 +12,217 @@ using System.Threading; using UnityEngine; -public class ChatHUDController : IHUD +namespace DCL.Social.Chat { - public const int MAX_CHAT_ENTRIES = 30; - private const int TEMPORARILY_MUTE_MINUTES = 3; - private const int MAX_CONTINUOUS_MESSAGES = 10; - private const int MIN_MILLISECONDS_BETWEEN_MESSAGES = 1500; - private const int MAX_HISTORY_ITERATION = 10; - private const int MAX_MENTION_SUGGESTIONS = 5; - - public delegate UniTask> GetSuggestedUserProfiles(string name, int maxCount, CancellationToken cancellationToken); - - private readonly DataStore dataStore; - private readonly IUserProfileBridge userProfileBridge; - private readonly bool detectWhisper; - private readonly GetSuggestedUserProfiles getSuggestedUserProfiles; - private readonly InputAction_Trigger closeMentionSuggestionsTrigger; - private readonly IProfanityFilter profanityFilter; - private readonly ISocialAnalytics socialAnalytics; - private readonly IChatController chatController; - private readonly Regex mentionRegex = new (@"(\B@\w+)|(\B@+)"); - private readonly Regex whisperRegex = new (@"(?i)^\/(whisper|w) (\S+)( *)(.*)"); - private readonly Dictionary temporarilyMutedSenders = new (); - private readonly List spamMessages = new (); - private readonly List lastMessagesSent = new (); - private readonly CancellationTokenSource profileFetchingCancellationToken = new (); - private readonly CancellationTokenSource addMessagesCancellationToken = new (); - - private int currentHistoryIteration; - private IChatHUDComponentView view; - private CancellationTokenSource mentionSuggestionCancellationToken = new (); - private int mentionLength; - private int mentionFromIndex; - private Dictionary mentionSuggestedProfiles; - - private bool useLegacySorting => dataStore.featureFlags.flags.Get().IsFeatureEnabled("legacy_chat_sorting_enabled"); - private bool isMentionsEnabled => dataStore.featureFlags.flags.Get().IsFeatureEnabled("chat_mentions_enabled"); - - public IComparer SortingStrategy + public class ChatHUDController : IHUD { - set + public const int MAX_CHAT_ENTRIES = 30; + private const int TEMPORARILY_MUTE_MINUTES = 3; + private const int MAX_CONTINUOUS_MESSAGES = 10; + private const int MIN_MILLISECONDS_BETWEEN_MESSAGES = 1500; + private const int MAX_HISTORY_ITERATION = 10; + private const int MAX_MENTION_SUGGESTIONS = 5; + + public delegate UniTask> GetSuggestedUserProfiles(string name, int maxCount, CancellationToken cancellationToken); + + private readonly DataStore dataStore; + private readonly IUserProfileBridge userProfileBridge; + private readonly bool detectWhisper; + private readonly GetSuggestedUserProfiles getSuggestedUserProfiles; + private readonly InputAction_Trigger closeMentionSuggestionsTrigger; + private readonly IProfanityFilter profanityFilter; + private readonly ISocialAnalytics socialAnalytics; + private readonly IChatController chatController; + private readonly IClipboard clipboard; + private readonly Regex mentionRegex = new (@"(\B@\w+)|(\B@+)"); + private readonly Regex whisperRegex = new (@"(?i)^\/(whisper|w) (\S+)( *)(.*)"); + private readonly Dictionary temporarilyMutedSenders = new (); + private readonly List spamMessages = new (); + private readonly List lastMessagesSent = new (); + private readonly CancellationTokenSource profileFetchingCancellationToken = new (); + private readonly CancellationTokenSource addMessagesCancellationToken = new (); + + private int currentHistoryIteration; + private IChatHUDComponentView view; + private CancellationTokenSource mentionSuggestionCancellationToken = new (); + private int mentionLength; + private int mentionFromIndex; + private Dictionary mentionSuggestedProfiles; + + private bool useLegacySorting => dataStore.featureFlags.flags.Get().IsFeatureEnabled("legacy_chat_sorting_enabled"); + private bool isMentionsEnabled => dataStore.featureFlags.flags.Get().IsFeatureEnabled("chat_mentions_enabled"); + + public IComparer SortingStrategy { - if (view != null) - view.SortingStrategy = value; + set + { + if (view != null) + view.SortingStrategy = value; + } } - } - public event Action OnInputFieldSelected; - public event Action OnSendMessage; - public event Action OnMessageSentBlockedBySpam; - - public ChatHUDController(DataStore dataStore, - IUserProfileBridge userProfileBridge, - bool detectWhisper, - GetSuggestedUserProfiles getSuggestedUserProfiles, - ISocialAnalytics socialAnalytics, - IChatController chatController, - IProfanityFilter profanityFilter = null) - { - this.dataStore = dataStore; - this.userProfileBridge = userProfileBridge; - this.detectWhisper = detectWhisper; - this.getSuggestedUserProfiles = getSuggestedUserProfiles; - this.socialAnalytics = socialAnalytics; - this.chatController = chatController; - this.profanityFilter = profanityFilter; - } + public event Action OnInputFieldSelected; + public event Action OnSendMessage; + public event Action OnMessageSentBlockedBySpam; + + public ChatHUDController(DataStore dataStore, + IUserProfileBridge userProfileBridge, + bool detectWhisper, + GetSuggestedUserProfiles getSuggestedUserProfiles, + ISocialAnalytics socialAnalytics, + IChatController chatController, + IClipboard clipboard, + IProfanityFilter profanityFilter = null) + { + this.dataStore = dataStore; + this.userProfileBridge = userProfileBridge; + this.detectWhisper = detectWhisper; + this.getSuggestedUserProfiles = getSuggestedUserProfiles; + this.socialAnalytics = socialAnalytics; + this.chatController = chatController; + this.clipboard = clipboard; + this.profanityFilter = profanityFilter; + } - public void Initialize(IChatHUDComponentView view) - { - this.view = view; - this.view.OnPreviousChatInHistory -= FillInputWithPreviousMessage; - this.view.OnPreviousChatInHistory += FillInputWithPreviousMessage; - this.view.OnNextChatInHistory -= FillInputWithNextMessage; - this.view.OnNextChatInHistory += FillInputWithNextMessage; - this.view.OnShowMenu -= ContextMenu_OnShowMenu; - this.view.OnShowMenu += ContextMenu_OnShowMenu; - this.view.OnInputFieldSelected -= HandleInputFieldSelected; - this.view.OnInputFieldSelected += HandleInputFieldSelected; - this.view.OnInputFieldDeselected -= HandleInputFieldDeselected; - this.view.OnInputFieldDeselected += HandleInputFieldDeselected; - this.view.OnSendMessage -= HandleSendMessage; - this.view.OnSendMessage += HandleSendMessage; - this.view.OnMessageUpdated -= HandleMessageUpdated; - this.view.OnMessageUpdated += HandleMessageUpdated; - this.view.OnMentionSuggestionSelected -= HandleMentionSuggestionSelected; - this.view.OnMentionSuggestionSelected += HandleMentionSuggestionSelected; - this.view.OnOpenedContextMenu -= OpenedContextMenu; - this.view.OnOpenedContextMenu += OpenedContextMenu; - this.view.UseLegacySorting = useLegacySorting; - } + public void Initialize(IChatHUDComponentView view) + { + this.view = view; + this.view.OnPreviousChatInHistory -= FillInputWithPreviousMessage; + this.view.OnPreviousChatInHistory += FillInputWithPreviousMessage; + this.view.OnNextChatInHistory -= FillInputWithNextMessage; + this.view.OnNextChatInHistory += FillInputWithNextMessage; + this.view.OnShowMenu -= ContextMenu_OnShowMenu; + this.view.OnShowMenu += ContextMenu_OnShowMenu; + this.view.OnInputFieldSelected -= HandleInputFieldSelected; + this.view.OnInputFieldSelected += HandleInputFieldSelected; + this.view.OnInputFieldDeselected -= HandleInputFieldDeselected; + this.view.OnInputFieldDeselected += HandleInputFieldDeselected; + this.view.OnSendMessage -= HandleSendMessage; + this.view.OnSendMessage += HandleSendMessage; + this.view.OnMessageUpdated -= HandleMessageUpdated; + this.view.OnMessageUpdated += HandleMessageUpdated; + this.view.OnMentionSuggestionSelected -= HandleMentionSuggestionSelected; + this.view.OnMentionSuggestionSelected += HandleMentionSuggestionSelected; + this.view.OnOpenedContextMenu -= OpenedContextMenu; + this.view.OnOpenedContextMenu += OpenedContextMenu; + this.view.OnCopyMessageRequested += HandleCopyMessageToClipboard; + this.view.UseLegacySorting = useLegacySorting; + } - private void OpenedContextMenu() - { - socialAnalytics.SendClickedMention(); - } + public void Dispose() + { + view.OnShowMenu -= ContextMenu_OnShowMenu; + view.OnMessageUpdated -= HandleMessageUpdated; + view.OnSendMessage -= HandleSendMessage; + view.OnInputFieldSelected -= HandleInputFieldSelected; + view.OnInputFieldDeselected -= HandleInputFieldDeselected; + view.OnPreviousChatInHistory -= FillInputWithPreviousMessage; + view.OnNextChatInHistory -= FillInputWithNextMessage; + view.OnMentionSuggestionSelected -= HandleMentionSuggestionSelected; + view.OnCopyMessageRequested -= HandleCopyMessageToClipboard; + OnSendMessage = null; + OnInputFieldSelected = null; + view.Dispose(); + mentionSuggestionCancellationToken.SafeCancelAndDispose(); + profileFetchingCancellationToken.SafeCancelAndDispose(); + addMessagesCancellationToken.SafeCancelAndDispose(); + } - public void SetVisibility(bool visible) - { - if (!visible) - HideMentionSuggestions(); - } + private void OpenedContextMenu() + { + socialAnalytics.SendClickedMention(); + } - public void SetChatMessage(ChatMessage message, bool setScrollPositionToBottom = false, - bool spamFiltering = true, bool limitMaxEntries = true) - { - async UniTaskVoid EnsureProfileThenUpdateMessage(string profileId, ChatEntryModel model, - Func modificationCallback, - bool setScrollPositionToBottom, bool spamFiltering, bool limitMaxEntries, - CancellationToken cancellationToken) + public void SetVisibility(bool visible) { - try + if (!visible) + HideMentionSuggestions(); + } + + public void SetChatMessage(ChatMessage message, bool setScrollPositionToBottom = false, + bool spamFiltering = true, bool limitMaxEntries = true) + { + async UniTaskVoid EnsureProfileThenUpdateMessage(string profileId, ChatEntryModel model, + Func modificationCallback, + bool setScrollPositionToBottom, bool spamFiltering, bool limitMaxEntries, + CancellationToken cancellationToken) { - UserProfile requestedProfile = await userProfileBridge.RequestFullUserProfileAsync(profileId, cancellationToken); + try + { + UserProfile requestedProfile = await userProfileBridge.RequestFullUserProfileAsync(profileId, cancellationToken); - model = modificationCallback.Invoke(model, requestedProfile); + model = modificationCallback.Invoke(model, requestedProfile); - // avoid any possible race condition with the current AddChatMessage operation - await UniTask.NextFrame(cancellationToken: cancellationToken); + // avoid any possible race condition with the current AddChatMessage operation + await UniTask.NextFrame(cancellationToken: cancellationToken); - await SetChatMessage(model, setScrollPositionToBottom, spamFiltering, limitMaxEntries, cancellationToken); + await SetChatMessage(model, setScrollPositionToBottom, spamFiltering, limitMaxEntries, cancellationToken); + } + catch (Exception e) when (e is not OperationCanceledException) { Debug.LogException(e); } } - catch (Exception e) when (e is not OperationCanceledException) { Debug.LogException(e); } - } - string GetEllipsisFormat(string address) => - address.Length <= 8 ? address : $"{address[..4]}...{address[^4..]}"; + string GetEllipsisFormat(string address) => + address.Length <= 8 ? address : $"{address[..4]}...{address[^4..]}"; - var model = new ChatEntryModel(); - var ownProfile = userProfileBridge.GetOwn(); + var model = new ChatEntryModel(); + var ownProfile = userProfileBridge.GetOwn(); - model.messageId = message.messageId; - model.messageType = message.messageType; - model.bodyText = message.body; - model.timestamp = message.timestamp; + model.messageId = message.messageId; + model.messageType = message.messageType; + model.bodyText = message.body; + model.timestamp = message.timestamp; - if (!string.IsNullOrEmpty(message.recipient)) - { - model.isChannelMessage = chatController.GetAllocatedChannel(message.recipient) != null; + if (!string.IsNullOrEmpty(message.recipient)) + { + model.isChannelMessage = chatController.GetAllocatedChannel(message.recipient) != null; - if (!model.isChannelMessage) + if (!model.isChannelMessage) + { + UserProfile recipientProfile = userProfileBridge.Get(message.recipient); + + if (recipientProfile != null) + model.recipientName = recipientProfile.userName; + else + { + model.recipientName = GetEllipsisFormat(message.recipient); + model.isLoadingNames = true; + + // sometimes there is no cached profile, so we request it + // dont block the operation of showing the message immediately + // just update the message information after we get the profile + EnsureProfileThenUpdateMessage(message.recipient, model, + (m, p) => + { + m.recipientName = p.userName; + return m; + }, + setScrollPositionToBottom, spamFiltering, + limitMaxEntries, + profileFetchingCancellationToken.Token) + .Forget(); + } + } + } + + if (!string.IsNullOrEmpty(message.sender)) { - UserProfile recipientProfile = userProfileBridge.Get(message.recipient); + model.senderId = message.sender; + UserProfile senderProfile = userProfileBridge.Get(message.sender); - if (recipientProfile != null) - model.recipientName = recipientProfile.userName; + if (senderProfile != null) + model.senderName = senderProfile.userName; else { - model.recipientName = GetEllipsisFormat(message.recipient); + model.senderName = GetEllipsisFormat(message.sender); model.isLoadingNames = true; // sometimes there is no cached profile, so we request it // dont block the operation of showing the message immediately // just update the message information after we get the profile - EnsureProfileThenUpdateMessage(message.recipient, model, + EnsureProfileThenUpdateMessage(message.sender, model, (m, p) => { - m.recipientName = p.userName; + m.senderName = p.userName; return m; }, setScrollPositionToBottom, spamFiltering, @@ -180,341 +231,300 @@ string GetEllipsisFormat(string address) => .Forget(); } } - } - - if (!string.IsNullOrEmpty(message.sender)) - { - model.senderId = message.sender; - UserProfile senderProfile = userProfileBridge.Get(message.sender); - if (senderProfile != null) - model.senderName = senderProfile.userName; - else + if (message.messageType == ChatMessage.Type.PRIVATE) { - model.senderName = GetEllipsisFormat(message.sender); - model.isLoadingNames = true; - - // sometimes there is no cached profile, so we request it - // dont block the operation of showing the message immediately - // just update the message information after we get the profile - EnsureProfileThenUpdateMessage(message.sender, model, - (m, p) => - { - m.senderName = p.userName; - return m; - }, - setScrollPositionToBottom, spamFiltering, - limitMaxEntries, - profileFetchingCancellationToken.Token) - .Forget(); + model.subType = message.sender == ownProfile.userId + ? ChatEntryModel.SubType.SENT + : ChatEntryModel.SubType.RECEIVED; + } + else if (message.messageType == ChatMessage.Type.PUBLIC) + { + model.subType = message.sender == ownProfile.userId + ? ChatEntryModel.SubType.SENT + : ChatEntryModel.SubType.RECEIVED; } - } - if (message.messageType == ChatMessage.Type.PRIVATE) - { - model.subType = message.sender == ownProfile.userId - ? ChatEntryModel.SubType.SENT - : ChatEntryModel.SubType.RECEIVED; - } - else if (message.messageType == ChatMessage.Type.PUBLIC) - { - model.subType = message.sender == ownProfile.userId - ? ChatEntryModel.SubType.SENT - : ChatEntryModel.SubType.RECEIVED; + SetChatMessage(model, setScrollPositionToBottom, spamFiltering, limitMaxEntries, + addMessagesCancellationToken.Token) + .Forget(); } - SetChatMessage(model, setScrollPositionToBottom, spamFiltering, limitMaxEntries, - addMessagesCancellationToken.Token) - .Forget(); - } - - public async UniTask SetChatMessage(ChatEntryModel chatEntryModel, bool setScrollPositionToBottom = false, bool spamFiltering = true, bool limitMaxEntries = true, - CancellationToken cancellationToken = default) - { - if (IsSpamming(chatEntryModel.senderName) && spamFiltering) return; - - chatEntryModel.bodyText = ChatUtils.AddNoParse(chatEntryModel.bodyText); - - if (IsProfanityFilteringEnabled() && chatEntryModel.messageType != ChatMessage.Type.PRIVATE) + public async UniTask SetChatMessage(ChatEntryModel chatEntryModel, bool setScrollPositionToBottom = false, bool spamFiltering = true, bool limitMaxEntries = true, + CancellationToken cancellationToken = default) { - chatEntryModel.bodyText = await profanityFilter.Filter(chatEntryModel.bodyText, cancellationToken); + if (IsSpamming(chatEntryModel.senderName) && spamFiltering) return; - if (!string.IsNullOrEmpty(chatEntryModel.senderName)) - chatEntryModel.senderName = await profanityFilter.Filter(chatEntryModel.senderName, cancellationToken); + chatEntryModel.bodyText = ChatUtils.AddNoParse(chatEntryModel.bodyText); - if (!string.IsNullOrEmpty(chatEntryModel.recipientName)) - chatEntryModel.recipientName = await profanityFilter.Filter(chatEntryModel.recipientName, cancellationToken); - } + if (IsProfanityFilteringEnabled() && chatEntryModel.messageType != ChatMessage.Type.PRIVATE) + { + chatEntryModel.bodyText = await profanityFilter.Filter(chatEntryModel.bodyText, cancellationToken); - await UniTask.SwitchToMainThread(cancellationToken: cancellationToken); + if (!string.IsNullOrEmpty(chatEntryModel.senderName)) + chatEntryModel.senderName = await profanityFilter.Filter(chatEntryModel.senderName, cancellationToken); - view.SetEntry(chatEntryModel, setScrollPositionToBottom); + if (!string.IsNullOrEmpty(chatEntryModel.recipientName)) + chatEntryModel.recipientName = await profanityFilter.Filter(chatEntryModel.recipientName, cancellationToken); + } - if (limitMaxEntries && view.EntryCount > MAX_CHAT_ENTRIES) - view.RemoveOldestEntry(); + await UniTask.SwitchToMainThread(cancellationToken: cancellationToken); - if (string.IsNullOrEmpty(chatEntryModel.senderId)) return; + view.SetEntry(chatEntryModel, setScrollPositionToBottom); - if (spamFiltering) - UpdateSpam(chatEntryModel); - } + if (limitMaxEntries && view.EntryCount > MAX_CHAT_ENTRIES) + view.RemoveOldestEntry(); - public void Dispose() - { - view.OnShowMenu -= ContextMenu_OnShowMenu; - view.OnMessageUpdated -= HandleMessageUpdated; - view.OnSendMessage -= HandleSendMessage; - view.OnInputFieldSelected -= HandleInputFieldSelected; - view.OnInputFieldDeselected -= HandleInputFieldDeselected; - view.OnPreviousChatInHistory -= FillInputWithPreviousMessage; - view.OnNextChatInHistory -= FillInputWithNextMessage; - view.OnMentionSuggestionSelected -= HandleMentionSuggestionSelected; - OnSendMessage = null; - OnInputFieldSelected = null; - view.Dispose(); - mentionSuggestionCancellationToken.SafeCancelAndDispose(); - profileFetchingCancellationToken.SafeCancelAndDispose(); - addMessagesCancellationToken.SafeCancelAndDispose(); - } + if (string.IsNullOrEmpty(chatEntryModel.senderId)) return; - public void ClearAllEntries() => - view.ClearAllEntries(); + if (spamFiltering) + UpdateSpam(chatEntryModel); + } - public void ResetInputField(bool loseFocus = false) => - view.ResetInputField(loseFocus); + public void ClearAllEntries() => + view.ClearAllEntries(); - public void FocusInputField() => - view.FocusInputField(); + public void ResetInputField(bool loseFocus = false) => + view.ResetInputField(loseFocus); - public void SetInputFieldText(string setInputText) => - view.SetInputFieldText(setInputText); + public void FocusInputField() => + view.FocusInputField(); - public void UnfocusInputField() => - view.UnfocusInputField(); + public void SetInputFieldText(string setInputText) => + view.SetInputFieldText(setInputText); - private void ContextMenu_OnShowMenu() => - view.OnMessageCancelHover(); + public void UnfocusInputField() => + view.UnfocusInputField(); - private bool IsProfanityFilteringEnabled() => - dataStore.settings.profanityChatFilteringEnabled.Get() - && profanityFilter != null; + private void ContextMenu_OnShowMenu() => + view.OnMessageCancelHover(); - private void HandleMessageUpdated(string message, int cursorPosition) => - UpdateMentions(message, cursorPosition); + private bool IsProfanityFilteringEnabled() => + dataStore.settings.profanityChatFilteringEnabled.Get() + && profanityFilter != null; - private void UpdateMentions(string message, int cursorPosition) - { - if (!isMentionsEnabled) return; + private void HandleMessageUpdated(string message, int cursorPosition) => + UpdateMentions(message, cursorPosition); - if (string.IsNullOrEmpty(message)) + private void UpdateMentions(string message, int cursorPosition) { - HideMentionSuggestions(); - return; - } + if (!isMentionsEnabled) return; - async UniTaskVoid ShowMentionSuggestionsAsync(string name, CancellationToken cancellationToken) - { - try + if (string.IsNullOrEmpty(message)) { - List suggestions = await getSuggestedUserProfiles.Invoke(name, MAX_MENTION_SUGGESTIONS, cancellationToken); - - mentionSuggestedProfiles = suggestions.ToDictionary(profile => profile.userId, profile => profile); + HideMentionSuggestions(); + return; + } - if (suggestions.Count == 0) - HideMentionSuggestions(); - else + async UniTaskVoid ShowMentionSuggestionsAsync(string name, CancellationToken cancellationToken) + { + try { - view.ShowMentionSuggestions(); - dataStore.mentions.isMentionSuggestionVisible.Set(true); - - view.SetMentionSuggestions(suggestions.Select(profile => new ChatMentionSuggestionModel - { - userId = profile.userId, - userName = profile.userName, - imageUrl = profile.face256SnapshotURL, - }) - .ToList()); + List suggestions = await getSuggestedUserProfiles.Invoke(name, MAX_MENTION_SUGGESTIONS, cancellationToken); + + mentionSuggestedProfiles = suggestions.ToDictionary(profile => profile.userId, profile => profile); + + if (suggestions.Count == 0) + HideMentionSuggestions(); + else + { + view.ShowMentionSuggestions(); + dataStore.mentions.isMentionSuggestionVisible.Set(true); + + view.SetMentionSuggestions(suggestions.Select(profile => new ChatMentionSuggestionModel + { + userId = profile.userId, + userName = profile.userName, + imageUrl = profile.face256SnapshotURL, + }) + .ToList()); + } } + catch (Exception e) when (e is not OperationCanceledException) { HideMentionSuggestions(); } } - catch (Exception e) when (e is not OperationCanceledException) { HideMentionSuggestions(); } - } - int lastWrittenCharacterIndex = Math.Max(0, cursorPosition - 1); + int lastWrittenCharacterIndex = Math.Max(0, cursorPosition - 1); - if (mentionFromIndex >= message.Length || message[lastWrittenCharacterIndex] == ' ') - mentionFromIndex = cursorPosition; + if (mentionFromIndex >= message.Length || message[lastWrittenCharacterIndex] == ' ') + mentionFromIndex = cursorPosition; - Match match = mentionRegex.Match(message, mentionFromIndex); + Match match = mentionRegex.Match(message, mentionFromIndex); - if (match.Success) - { - mentionSuggestionCancellationToken = mentionSuggestionCancellationToken.SafeRestart(); - mentionFromIndex = match.Index; - mentionLength = match.Length; - string name = match.Value[1..]; - ShowMentionSuggestionsAsync(name, mentionSuggestionCancellationToken.Token).Forget(); + if (match.Success) + { + mentionSuggestionCancellationToken = mentionSuggestionCancellationToken.SafeRestart(); + mentionFromIndex = match.Index; + mentionLength = match.Length; + string name = match.Value[1..]; + ShowMentionSuggestionsAsync(name, mentionSuggestionCancellationToken.Token).Forget(); + } + else + { + mentionSuggestionCancellationToken.SafeCancelAndDispose(); + mentionFromIndex = lastWrittenCharacterIndex; + HideMentionSuggestions(); + } } - else + + private void HandleSendMessage(ChatMessage message) { - mentionSuggestionCancellationToken.SafeCancelAndDispose(); - mentionFromIndex = lastWrittenCharacterIndex; + mentionFromIndex = 0; HideMentionSuggestions(); - } - } - private void HandleSendMessage(ChatMessage message) - { - mentionFromIndex = 0; - HideMentionSuggestions(); + var ownProfile = userProfileBridge.GetOwn(); + message.sender = ownProfile.userId; - var ownProfile = userProfileBridge.GetOwn(); - message.sender = ownProfile.userId; + RegisterMessageHistory(message); + currentHistoryIteration = 0; - RegisterMessageHistory(message); - currentHistoryIteration = 0; - - if (IsSpamming(message.sender) || (IsSpamming(ownProfile.userName) && !string.IsNullOrEmpty(message.body))) - { - OnMessageSentBlockedBySpam?.Invoke(message); - return; - } + if (IsSpamming(message.sender) || (IsSpamming(ownProfile.userName) && !string.IsNullOrEmpty(message.body))) + { + OnMessageSentBlockedBySpam?.Invoke(message); + return; + } - if (MentionsUtils.TextContainsMention(message.body)) - socialAnalytics.SendMessageWithMention(); + if (MentionsUtils.TextContainsMention(message.body)) + socialAnalytics.SendMessageWithMention(); - ApplyWhisperAttributes(message); + ApplyWhisperAttributes(message); - if (message.body.ToLower().StartsWith("/join")) - { - if (!ownProfile.isGuest) - dataStore.channels.channelJoinedSource.Set(ChannelJoinedSource.Command); - else + if (message.body.ToLower().StartsWith("/join")) { - dataStore.HUDs.connectWalletModalVisible.Set(true); - return; + if (!ownProfile.isGuest) + dataStore.channels.channelJoinedSource.Set(ChannelJoinedSource.Command); + else + { + dataStore.HUDs.connectWalletModalVisible.Set(true); + return; + } } - } - OnSendMessage?.Invoke(message); - } + OnSendMessage?.Invoke(message); + } - private void RegisterMessageHistory(ChatMessage message) - { - if (string.IsNullOrEmpty(message.body)) return; + private void RegisterMessageHistory(ChatMessage message) + { + if (string.IsNullOrEmpty(message.body)) return; - lastMessagesSent.RemoveAll(s => s.Equals(message.body)); - lastMessagesSent.Insert(0, message.body); + lastMessagesSent.RemoveAll(s => s.Equals(message.body)); + lastMessagesSent.Insert(0, message.body); - if (lastMessagesSent.Count > MAX_HISTORY_ITERATION) - lastMessagesSent.RemoveAt(lastMessagesSent.Count - 1); - } + if (lastMessagesSent.Count > MAX_HISTORY_ITERATION) + lastMessagesSent.RemoveAt(lastMessagesSent.Count - 1); + } - private void ApplyWhisperAttributes(ChatMessage message) - { - if (!detectWhisper) return; - var body = message.body; - if (string.IsNullOrWhiteSpace(body)) return; + private void ApplyWhisperAttributes(ChatMessage message) + { + if (!detectWhisper) return; + var body = message.body; + if (string.IsNullOrWhiteSpace(body)) return; - var match = whisperRegex.Match(body); - if (!match.Success) return; + var match = whisperRegex.Match(body); + if (!match.Success) return; - message.messageType = ChatMessage.Type.PRIVATE; - message.recipient = match.Groups[2].Value; - message.body = match.Groups[4].Value; - } + message.messageType = ChatMessage.Type.PRIVATE; + message.recipient = match.Groups[2].Value; + message.body = match.Groups[4].Value; + } - private void HandleInputFieldSelected() - { - currentHistoryIteration = 0; - OnInputFieldSelected?.Invoke(); - } + private void HandleInputFieldSelected() + { + currentHistoryIteration = 0; + OnInputFieldSelected?.Invoke(); + } - private void HandleInputFieldDeselected() => - currentHistoryIteration = 0; + private void HandleInputFieldDeselected() => + currentHistoryIteration = 0; - private bool IsSpamming(string senderName) - { - if (string.IsNullOrEmpty(senderName)) return false; + private bool IsSpamming(string senderName) + { + if (string.IsNullOrEmpty(senderName)) return false; - var isSpamming = false; + var isSpamming = false; - if (!temporarilyMutedSenders.ContainsKey(senderName)) return false; + if (!temporarilyMutedSenders.ContainsKey(senderName)) return false; - var muteTimestamp = DateTimeOffset.FromUnixTimeMilliseconds((long)temporarilyMutedSenders[senderName]); + var muteTimestamp = DateTimeOffset.FromUnixTimeMilliseconds((long)temporarilyMutedSenders[senderName]); - if ((DateTimeOffset.UtcNow - muteTimestamp).Minutes < TEMPORARILY_MUTE_MINUTES) - isSpamming = true; - else - temporarilyMutedSenders.Remove(senderName); + if ((DateTimeOffset.UtcNow - muteTimestamp).Minutes < TEMPORARILY_MUTE_MINUTES) + isSpamming = true; + else + temporarilyMutedSenders.Remove(senderName); - return isSpamming; - } + return isSpamming; + } - private void UpdateSpam(ChatEntryModel model) - { - if (spamMessages.Count == 0) - spamMessages.Add(model); - else if (spamMessages[^1].senderName == model.senderName) + private void UpdateSpam(ChatEntryModel model) { - if (MessagesSentTooFast(spamMessages[^1].timestamp, model.timestamp)) - { + if (spamMessages.Count == 0) spamMessages.Add(model); - - if (spamMessages.Count >= MAX_CONTINUOUS_MESSAGES) + else if (spamMessages[^1].senderName == model.senderName) + { + if (MessagesSentTooFast(spamMessages[^1].timestamp, model.timestamp)) { - temporarilyMutedSenders.Add(model.senderName, model.timestamp); - spamMessages.Clear(); + spamMessages.Add(model); + + if (spamMessages.Count >= MAX_CONTINUOUS_MESSAGES) + { + temporarilyMutedSenders.Add(model.senderName, model.timestamp); + spamMessages.Clear(); + } } + else + spamMessages.Clear(); } else spamMessages.Clear(); } - else - spamMessages.Clear(); - } - private bool MessagesSentTooFast(ulong oldMessageTimeStamp, ulong newMessageTimeStamp) - { - var oldDateTime = DateTimeOffset.FromUnixTimeMilliseconds((long)oldMessageTimeStamp); - var newDateTime = DateTimeOffset.FromUnixTimeMilliseconds((long)newMessageTimeStamp); - return (newDateTime - oldDateTime).TotalMilliseconds < MIN_MILLISECONDS_BETWEEN_MESSAGES; - } - - private void FillInputWithNextMessage() - { - if (lastMessagesSent.Count == 0) return; - view.FocusInputField(); - view.SetInputFieldText(lastMessagesSent[currentHistoryIteration]); - currentHistoryIteration = (currentHistoryIteration + 1) % lastMessagesSent.Count; - } + private bool MessagesSentTooFast(ulong oldMessageTimeStamp, ulong newMessageTimeStamp) + { + var oldDateTime = DateTimeOffset.FromUnixTimeMilliseconds((long)oldMessageTimeStamp); + var newDateTime = DateTimeOffset.FromUnixTimeMilliseconds((long)newMessageTimeStamp); + return (newDateTime - oldDateTime).TotalMilliseconds < MIN_MILLISECONDS_BETWEEN_MESSAGES; + } - private void FillInputWithPreviousMessage() - { - if (lastMessagesSent.Count == 0) + private void FillInputWithNextMessage() { - view.ResetInputField(); - return; + if (lastMessagesSent.Count == 0) return; + view.FocusInputField(); + view.SetInputFieldText(lastMessagesSent[currentHistoryIteration]); + currentHistoryIteration = (currentHistoryIteration + 1) % lastMessagesSent.Count; } - currentHistoryIteration--; + private void FillInputWithPreviousMessage() + { + if (lastMessagesSent.Count == 0) + { + view.ResetInputField(); + return; + } - if (currentHistoryIteration < 0) - currentHistoryIteration = lastMessagesSent.Count - 1; + currentHistoryIteration--; - view.FocusInputField(); - view.SetInputFieldText(lastMessagesSent[currentHistoryIteration]); - } + if (currentHistoryIteration < 0) + currentHistoryIteration = lastMessagesSent.Count - 1; - private void HandleMentionSuggestionSelected(string userId) - { - view.AddMentionToInputField(mentionFromIndex, mentionLength, userId, mentionSuggestedProfiles[userId].userName); - socialAnalytics.SendMentionCreated(MentionCreationSource.SuggestionList); - HideMentionSuggestions(); - } + view.FocusInputField(); + view.SetInputFieldText(lastMessagesSent[currentHistoryIteration]); + } - private void HideMentionSuggestions() - { - view.HideMentionSuggestions(); - dataStore.mentions.isMentionSuggestionVisible.Set(false); + private void HandleMentionSuggestionSelected(string userId) + { + view.AddMentionToInputField(mentionFromIndex, mentionLength, userId, mentionSuggestedProfiles[userId].userName); + socialAnalytics.SendMentionCreated(MentionCreationSource.SuggestionList); + HideMentionSuggestions(); + } + + private void HideMentionSuggestions() + { + view.HideMentionSuggestions(); + dataStore.mentions.isMentionSuggestionVisible.Set(false); + } + + private void HandleCopyMessageToClipboard(ChatEntryModel model) + { + clipboard.WriteText(ChatUtils.RemoveNoParse(model.bodyText)); + } } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatHUDView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatHUDView.cs index de7ea5dbe6..523222a186 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatHUDView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatHUDView.cs @@ -1,4 +1,3 @@ -using DCL.Chat.HUD; using DCL.Helpers; using DCL.Interface; using System; @@ -108,6 +107,7 @@ void Action(string s) => public event Action OnPreviousChatInHistory; public event Action OnNextChatInHistory; public event Action OnMentionSuggestionSelected; + public event Action OnCopyMessageRequested; public event Action OnSendMessage; public int EntryCount => entries.Count; @@ -282,12 +282,13 @@ public virtual void SetEntry(ChatEntryModel model, bool setScrollPositionToBotto chatEntry.OnTriggerHoverGoto += OnMessageCoordinatesTriggerHover; chatEntry.OnCancelHover += OnMessageCancelHover; chatEntry.OnCancelGotoHover += OnMessageCancelGotoHover; + chatEntry.OnCopyClicked += OnMessageCopy; SetEntry(model.messageId, chatEntry, setScrollPositionToBottom); } } - public virtual void SetEntry(string messageId, ChatEntry chatEntry, bool setScrollPositionToBottom = false) + public void SetEntry(string messageId, ChatEntry chatEntry, bool setScrollPositionToBottom = false) { Dock(chatEntry); entries[messageId] = chatEntry; @@ -519,6 +520,9 @@ private ChatEntry GetFirstEntry() return firstEntry; } + private void OnMessageCopy(ChatEntry entry) => + OnCopyMessageRequested?.Invoke(entry.Model); + [Serializable] private struct Model { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatMentionSuggestionComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatMentionSuggestionComponentView.cs index eee111efe0..64f1d3bc75 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatMentionSuggestionComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatMentionSuggestionComponentView.cs @@ -4,7 +4,7 @@ using System.Linq; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChatMentionSuggestionComponentView : MonoBehaviour { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatMentionSuggestionEntryComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatMentionSuggestionEntryComponentView.cs index b822498d4b..9f4793a4f6 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatMentionSuggestionEntryComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatMentionSuggestionEntryComponentView.cs @@ -5,7 +5,7 @@ using UnityEngine.EventSystems; using UnityEngine.UI; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChatMentionSuggestionEntryComponentView : BaseComponentView, ISelectHandler, IDeselectHandler, ISubmitHandler diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatMentionSuggestionModel.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatMentionSuggestionModel.cs index 912f5d4e8f..dd5ee14364 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatMentionSuggestionModel.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatMentionSuggestionModel.cs @@ -1,4 +1,4 @@ -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public record ChatMentionSuggestionModel { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/DateSeparatorEntry.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/DateSeparatorEntry.cs index 365d9aca32..793b611bc7 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/DateSeparatorEntry.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/DateSeparatorEntry.cs @@ -1,73 +1,77 @@ using System; using System.Globalization; -using DCL.Chat.HUD; +using DCL.Social.Chat; using TMPro; using UnityEngine; -/// -/// Special type of entry to be used as date separator in chat conversations. -/// -public class DateSeparatorEntry : ChatEntry +namespace DCL.Social.Chat { - [SerializeField] internal TextMeshProUGUI title; - - private DateTime timestamp; - private ChatEntryModel chatEntryModel; - - public override string HoverString => - GetDateFormat(GetDateTimeFromUnixTimestampMilliseconds(Model.timestamp)); - public override event Action OnUserNameClicked; - public override event Action OnTriggerHover; - public override event Action OnTriggerHoverGoto; - public override event Action OnCancelHover; - public override event Action OnCancelGotoHover; - public override ChatEntryModel Model => chatEntryModel; - - public override void Populate(ChatEntryModel model) + /// + /// Special type of entry to be used as date separator in chat conversations. + /// + public class DateSeparatorEntry : ChatEntry { - chatEntryModel = model; - title.text = GetDateFormat(GetDateTimeFromUnixTimestampMilliseconds(model.timestamp)); - } + [SerializeField] internal TextMeshProUGUI title; - public override void SetFadeout(bool enabled) - { - if (enabled) return; - group.alpha = 1; - } + private DateTime timestamp; + private ChatEntryModel chatEntryModel; - public override void DockContextMenu(RectTransform panel) - { - } + public override string HoverString => + GetDateFormat(GetDateTimeFromUnixTimestampMilliseconds(Model.timestamp)); + public override event Action OnUserNameClicked; + public override event Action OnTriggerHover; + public override event Action OnTriggerHoverGoto; + public override event Action OnCancelHover; + public override event Action OnCancelGotoHover; + public override event Action OnCopyClicked; + public override ChatEntryModel Model => chatEntryModel; - public override void DockHoverPanel(RectTransform panel) - { - } + public override void Populate(ChatEntryModel model) + { + chatEntryModel = model; + title.text = GetDateFormat(GetDateTimeFromUnixTimestampMilliseconds(model.timestamp)); + } - public override void ConfigureMentionLinkDetector(UserContextMenu userContextMenu) - { - } + public override void SetFadeout(bool enabled) + { + if (enabled) return; + group.alpha = 1; + } - private string GetDateFormat(DateTime date) - { - string result = string.Empty; + public override void DockContextMenu(RectTransform panel) + { + } - if (date.Year == DateTime.Now.Year && - date.Month == DateTime.Now.Month && - date.Day == DateTime.Now.Day) + public override void DockHoverPanel(RectTransform panel) { - result = "Today"; } - else + + public override void ConfigureMentionLinkDetector(UserContextMenu userContextMenu) { - result = date.ToString("D", DateTimeFormatInfo.InvariantInfo); } - return result; - } + private string GetDateFormat(DateTime date) + { + string result = string.Empty; - private DateTime GetDateTimeFromUnixTimestampMilliseconds(ulong milliseconds) - { - DateTime result = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); - return result.AddMilliseconds(milliseconds); + if (date.Year == DateTime.Now.Year && + date.Month == DateTime.Now.Month && + date.Day == DateTime.Now.Day) + { + result = "Today"; + } + else + { + result = date.ToString("D", DateTimeFormatInfo.InvariantInfo); + } + + return result; + } + + private DateTime GetDateTimeFromUnixTimestampMilliseconds(ulong milliseconds) + { + DateTime result = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); + return result.AddMilliseconds(milliseconds); + } } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/DefaultChatEntry.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/DefaultChatEntry.cs index ebf2f35180..f3b88d9217 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/DefaultChatEntry.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/DefaultChatEntry.cs @@ -12,7 +12,7 @@ using UnityEngine.UI; using AudioSettings = DCL.SettingsCommon.AudioSettings; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class DefaultChatEntry : ChatEntry, IPointerClickHandler, IPointerEnterHandler, IPointerExitHandler { @@ -69,6 +69,7 @@ public override string HoverString public override event Action OnTriggerHoverGoto; public override event Action OnCancelHover; public override event Action OnCancelGotoHover; + public override event Action OnCopyClicked; public void Awake() { @@ -82,12 +83,12 @@ private async UniTask PopulateTask(ChatEntryModel chatEntryModel, CancellationTo { model = chatEntryModel; - if(chatEntryModel.subType == ChatEntryModel.SubType.RECEIVED && chatEntryModel.messageType == ChatMessage.Type.PUBLIC) + if (chatEntryModel is {subType: ChatEntryModel.SubType.RECEIVED, messageType: ChatMessage.Type.PUBLIC }) backgroundImage.color = initialEntryColor; chatEntryModel.bodyText = body.ReplaceUnsupportedCharacters(chatEntryModel.bodyText, '?'); chatEntryModel.bodyText = RemoveTabs(chatEntryModel.bodyText); - var userString = GetUserString(chatEntryModel); + string userString = GetUserString(chatEntryModel); // Due to a TMPro bug in Unity 2020 LTS we have to wait several frames before setting the body.text to avoid a // client crash. More info at https://github.com/decentraland/unity-renderer/pull/2345#issuecomment-1155753538 @@ -208,7 +209,11 @@ public void OnPointerClick(PointerEventData pointerEventData) int linkIndex = TMP_TextUtilities.FindIntersectingLink(body, pointerEventData.position, body.canvas.worldCamera); - if (linkIndex == -1) return; + if (linkIndex == -1) + { + OnCopyClicked?.Invoke(this); + return; + } string link = body.textInfo.linkInfo[linkIndex].GetLinkID(); diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/DefaultChatEntryFactory.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/DefaultChatEntryFactory.cs index 7a5972e1cf..2dcbf92bb2 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/DefaultChatEntryFactory.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/DefaultChatEntryFactory.cs @@ -1,7 +1,7 @@ using DCL.Interface; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { [CreateAssetMenu(fileName = "DefaultChatEntryFactory", menuName = "DCL/Social/DefaultChatEntryFactory")] public class DefaultChatEntryFactory : ScriptableObject, IChatEntryFactory @@ -12,7 +12,7 @@ public class DefaultChatEntryFactory : ScriptableObject, IChatEntryFactory [SerializeField] private DefaultChatEntry privateSentMessagePrefab; [SerializeField] private DefaultChatEntry publicReceivedMessagePrefab; [SerializeField] private DefaultChatEntry publicSentMessagePrefab; - + public ChatEntry Create(ChatEntryModel model) { if (model.messageType == ChatMessage.Type.SYSTEM) @@ -40,4 +40,4 @@ public void Destroy(ChatEntry entry) Destroy(entry.gameObject); } } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/IChatEntryFactory.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/IChatEntryFactory.cs index 6e17d2c897..f64a0903f5 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/IChatEntryFactory.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/IChatEntryFactory.cs @@ -1,8 +1,8 @@ -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public interface IChatEntryFactory { ChatEntry Create(ChatEntryModel model); void Destroy(ChatEntry entry); } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/IChatHUDComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/IChatHUDComponentView.cs index a792233694..d37bf0ef51 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/IChatHUDComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/IChatHUDComponentView.cs @@ -1,4 +1,4 @@ -using DCL.Chat.HUD; +using DCL.Social.Chat; using DCL.Interface; using System; using System.Collections.Generic; @@ -16,24 +16,38 @@ public interface IChatHUDComponentView event Action OnPreviousChatInHistory; event Action OnNextChatInHistory; event Action OnMentionSuggestionSelected; + event Action OnCopyMessageRequested; int EntryCount { get; } - IComparer SortingStrategy { set; } - bool UseLegacySorting { set; } + IComparer SortingStrategy { set; } + bool UseLegacySorting { set; } void OnMessageCancelHover(); + void SetEntry(ChatEntryModel model, bool setScrollPositionToBottom = false); + void Dispose(); + void RemoveOldestEntry(); + void ClearAllEntries(); + void ResetInputField(bool loseFocus = false); + void FocusInputField(); + void UnfocusInputField(); + void SetInputFieldText(string text); + void ShowMentionSuggestions(); + void SetMentionSuggestions(List suggestions); + void HideMentionSuggestions(); + void AddMentionToInputField(int fromIndex, int length, string userId, string userName); + void AddTextIntoInputField(string text); } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/PoolChatEntryFactory.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/PoolChatEntryFactory.cs index d7c0f635e1..866a400525 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/PoolChatEntryFactory.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/PoolChatEntryFactory.cs @@ -2,7 +2,7 @@ using DCL.Interface; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { [CreateAssetMenu(fileName = "PoolChatEntryFactory", menuName = "DCL/Social/PoolChatEntryFactory")] public class PoolChatEntryFactory : ScriptableObject, IChatEntryFactory @@ -16,15 +16,15 @@ public class PoolChatEntryFactory : ScriptableObject, IChatEntryFactory [SerializeField] private DefaultChatEntry privateSentMessagePrefab; [SerializeField] private DefaultChatEntry publicReceivedMessagePrefab; [SerializeField] private DefaultChatEntry publicSentMessagePrefab; - + private readonly Dictionary pooledObjects = new Dictionary(); - + public ChatEntry Create(ChatEntryModel model) { if (model.messageType == ChatMessage.Type.SYSTEM) return GetEntryFromPool("SYSTEM", systemMessagePrefab); - + if (model.messageType == ChatMessage.Type.PUBLIC) { if (model.subType == ChatEntryModel.SubType.RECEIVED) @@ -74,4 +74,4 @@ private Pool GetPool(string poolName, DefaultChatEntry prefab) return entryPool; } } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/ChatHUDControllerShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/ChatHUDControllerShould.cs index bb6fdc3b18..21b3b0ab8a 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/ChatHUDControllerShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/ChatHUDControllerShould.cs @@ -1,9 +1,7 @@ using Cysharp.Threading.Tasks; -using DCL; -using DCL.Chat.HUD; +using DCL.Social.Chat; using DCL.Interface; using DCL.ProfanityFiltering; -using DCL.Social.Chat; using NSubstitute; using NUnit.Framework; using SocialFeaturesAnalytics; @@ -14,519 +12,523 @@ using UnityEngine; using UnityEngine.TestTools; -public class ChatHUDControllerShould +namespace DCL.Social.Chat { - private const string OWN_USER_ID = "ownUserId"; - - private ChatHUDController controller; - private IChatHUDComponentView view; - private DataStore dataStore; - private IProfanityFilter profanityFilter; - private Func> suggestedProfilesAction; - private IUserProfileBridge userProfileBridge; - - [SetUp] - public void SetUp() + public class ChatHUDControllerShould { - profanityFilter = Substitute.For(); - - profanityFilter.Filter(Arg.Any(), Arg.Any()) - .Returns(info => UniTask.FromResult(info[0].ToString())); - - dataStore = new DataStore(); - dataStore.settings.profanityChatFilteringEnabled.Set(true); - dataStore.featureFlags.flags.Set(new FeatureFlag { flags = { ["chat_mentions_enabled"] = true } }); - view = Substitute.For(); - userProfileBridge = Substitute.For(); - var ownUserProfile = ScriptableObject.CreateInstance(); - ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID }); - userProfileBridge.GetOwn().Returns(ownUserProfile); - suggestedProfilesAction = () => new List(); - - controller = new ChatHUDController(dataStore, userProfileBridge, true, - (name, count, token) => UniTask.FromResult(suggestedProfilesAction.Invoke()), - Substitute.For(), - Substitute.For(), - profanityFilter); - - controller.Initialize(view); - } + private const string OWN_USER_ID = "ownUserId"; - [TearDown] - public void TearDown() - { - controller.Dispose(); - } - - [Test] - public void SubmitMessageProperly() - { - ChatMessage sentMsg = null; + private ChatHUDController controller; + private IChatHUDComponentView view; + private DataStore dataStore; + private IProfanityFilter profanityFilter; + private Func> suggestedProfilesAction; + private IUserProfileBridge userProfileBridge; - void SendMessage(ChatMessage msg) => - sentMsg = msg; - - controller.OnSendMessage += SendMessage; - - view.OnSendMessage += Raise.Event>( - new ChatMessage(ChatMessage.Type.PUBLIC, "idk", "test message")); - - Assert.AreEqual("test message", sentMsg.body); - Assert.AreEqual(ChatMessage.Type.PUBLIC, sentMsg.messageType); - Assert.AreEqual(OWN_USER_ID, sentMsg.sender); - controller.OnSendMessage -= SendMessage; - } - - [UnityTest] - public IEnumerator TrimWhenTooMuchMessagesAreInView() => - UniTask.ToCoroutine(async () => + [SetUp] + public void SetUp() { - view.EntryCount.Returns(ChatHUDController.MAX_CHAT_ENTRIES + 1); - - var msg = new ChatEntryModel - { - messageType = ChatMessage.Type.PUBLIC, - senderName = "test", - bodyText = "test" - }; - - await controller.SetChatMessage(msg); - - view.Received(1).RemoveOldestEntry(); - }); - - [UnityTest] - public IEnumerator AddChatEntryProperly() => - UniTask.ToCoroutine(async () => + profanityFilter = Substitute.For(); + + profanityFilter.Filter(Arg.Any(), Arg.Any()) + .Returns(info => UniTask.FromResult(info[0].ToString())); + + dataStore = new DataStore(); + dataStore.settings.profanityChatFilteringEnabled.Set(true); + dataStore.featureFlags.flags.Set(new FeatureFlag { flags = { ["chat_mentions_enabled"] = true } }); + view = Substitute.For(); + userProfileBridge = Substitute.For(); + var ownUserProfile = ScriptableObject.CreateInstance(); + ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID }); + userProfileBridge.GetOwn().Returns(ownUserProfile); + suggestedProfilesAction = () => new List(); + + controller = new ChatHUDController(dataStore, userProfileBridge, true, + (name, count, token) => UniTask.FromResult(suggestedProfilesAction.Invoke()), + Substitute.For(), + Substitute.For(), + Substitute.For(), + profanityFilter); + + controller.Initialize(view); + } + + [TearDown] + public void TearDown() { - var msg = new ChatEntryModel - { - messageType = ChatMessage.Type.PUBLIC, - senderName = "test", - bodyText = "test" - }; - - await controller.SetChatMessage(msg); - - view.Received(1) - .SetEntry(Arg.Is( - model => model.messageType == msg.messageType && model.bodyText == $"{msg.bodyText}")); - }); + controller.Dispose(); + } - [TestCase("/w usr hello", "usr", "hello")] - [TestCase("/w usr im goku", "usr", "im goku")] - public void SetWhisperPropertiesWhenSendMessage(string text, string recipient, string body) - { - ChatMessage msg = null; - controller.OnSendMessage += m => msg = m; - - view.OnSendMessage += Raise.Event>(new ChatMessage(ChatMessage.Type.NONE, "", text)); + [Test] + public void SubmitMessageProperly() + { + ChatMessage sentMsg = null; - Assert.AreEqual(OWN_USER_ID, msg.sender); - Assert.AreEqual(ChatMessage.Type.PRIVATE, msg.messageType); - Assert.AreEqual(recipient, msg.recipient); - Assert.AreEqual(body, msg.body); - } + void SendMessage(ChatMessage msg) => + sentMsg = msg; - [Test] - public void SetSenderWhenSendingPublicMessage() - { - const string body = "how are you?"; - ChatMessage msg = null; - controller.OnSendMessage += m => msg = m; + controller.OnSendMessage += SendMessage; - view.OnSendMessage += Raise.Event>(new ChatMessage(ChatMessage.Type.NONE, "", body)); + view.OnSendMessage += Raise.Event>( + new ChatMessage(ChatMessage.Type.PUBLIC, "idk", "test message")); - Assert.AreEqual(OWN_USER_ID, msg.sender); - Assert.AreEqual(body, msg.body); - } + Assert.AreEqual("test message", sentMsg.body); + Assert.AreEqual(ChatMessage.Type.PUBLIC, sentMsg.messageType); + Assert.AreEqual(OWN_USER_ID, sentMsg.sender); + controller.OnSendMessage -= SendMessage; + } - [UnityTest] - [TestCase("ShiT hello shithead", "**** hello shithead", ExpectedResult = (IEnumerator)null)] - [TestCase("ass hi grass", "*** hi grass", ExpectedResult = (IEnumerator)null)] - public IEnumerator FilterProfanityMessageWithExplicitWords(string body, string expected) => - UniTask.ToCoroutine( - async () => + [UnityTest] + public IEnumerator TrimWhenTooMuchMessagesAreInView() => + UniTask.ToCoroutine(async () => { - profanityFilter.Filter($"{body}").Returns(UniTask.FromResult($"{expected}")); + view.EntryCount.Returns(ChatHUDController.MAX_CHAT_ENTRIES + 1); var msg = new ChatEntryModel { messageType = ChatMessage.Type.PUBLIC, senderName = "test", - bodyText = body + bodyText = "test" }; await controller.SetChatMessage(msg); - view.Received(1) - .SetEntry(Arg.Is(model => model.bodyText == $"{expected}")); + view.Received(1).RemoveOldestEntry(); }); - [UnityTest] - [TestCase("fuck1 heh bitch", "****1 heh *****", ExpectedResult = (IEnumerator)null)] - [TestCase("assfuck bitching", "ass**** *****ing", ExpectedResult = (IEnumerator)null)] - public IEnumerator FilterProfanityMessageWithNonExplicitWords(string body, string expected) => - UniTask.ToCoroutine( - async () => + [UnityTest] + public IEnumerator AddChatEntryProperly() => + UniTask.ToCoroutine(async () => { - profanityFilter.Filter($"{body}").Returns(UniTask.FromResult($"{expected}")); - var msg = new ChatEntryModel { messageType = ChatMessage.Type.PUBLIC, senderName = "test", - bodyText = body + bodyText = "test" }; await controller.SetChatMessage(msg); view.Received(1) - .SetEntry(Arg.Is(model => model.bodyText == $"{expected}")); + .SetEntry(Arg.Is( + model => model.messageType == msg.messageType && model.bodyText == $"{msg.bodyText}")); }); - [UnityTest] - [TestCase("fucker123", "****er123", ExpectedResult = (IEnumerator)null)] - [TestCase("goodname", "goodname", ExpectedResult = (IEnumerator)null)] - public IEnumerator FilterProfanitySenderName(string originalName, string filteredName) => - UniTask.ToCoroutine( - async () => + [TestCase("/w usr hello", "usr", "hello")] + [TestCase("/w usr im goku", "usr", "im goku")] + public void SetWhisperPropertiesWhenSendMessage(string text, string recipient, string body) + { + ChatMessage msg = null; + controller.OnSendMessage += m => msg = m; + + view.OnSendMessage += Raise.Event>(new ChatMessage(ChatMessage.Type.NONE, "", text)); + + Assert.AreEqual(OWN_USER_ID, msg.sender); + Assert.AreEqual(ChatMessage.Type.PRIVATE, msg.messageType); + Assert.AreEqual(recipient, msg.recipient); + Assert.AreEqual(body, msg.body); + } + + [Test] + public void SetSenderWhenSendingPublicMessage() + { + const string body = "how are you?"; + ChatMessage msg = null; + controller.OnSendMessage += m => msg = m; + + view.OnSendMessage += Raise.Event>(new ChatMessage(ChatMessage.Type.NONE, "", body)); + + Assert.AreEqual(OWN_USER_ID, msg.sender); + Assert.AreEqual(body, msg.body); + } + + [UnityTest] + [TestCase("ShiT hello shithead", "**** hello shithead", ExpectedResult = (IEnumerator)null)] + [TestCase("ass hi grass", "*** hi grass", ExpectedResult = (IEnumerator)null)] + public IEnumerator FilterProfanityMessageWithExplicitWords(string body, string expected) => + UniTask.ToCoroutine( + async () => + { + profanityFilter.Filter($"{body}").Returns(UniTask.FromResult($"{expected}")); + + var msg = new ChatEntryModel + { + messageType = ChatMessage.Type.PUBLIC, + senderName = "test", + bodyText = body + }; + + await controller.SetChatMessage(msg); + + view.Received(1) + .SetEntry(Arg.Is(model => model.bodyText == $"{expected}")); + }); + + [UnityTest] + [TestCase("fuck1 heh bitch", "****1 heh *****", ExpectedResult = (IEnumerator)null)] + [TestCase("assfuck bitching", "ass**** *****ing", ExpectedResult = (IEnumerator)null)] + public IEnumerator FilterProfanityMessageWithNonExplicitWords(string body, string expected) => + UniTask.ToCoroutine( + async () => + { + profanityFilter.Filter($"{body}").Returns(UniTask.FromResult($"{expected}")); + + var msg = new ChatEntryModel + { + messageType = ChatMessage.Type.PUBLIC, + senderName = "test", + bodyText = body + }; + + await controller.SetChatMessage(msg); + + view.Received(1) + .SetEntry(Arg.Is(model => model.bodyText == $"{expected}")); + }); + + [UnityTest] + [TestCase("fucker123", "****er123", ExpectedResult = (IEnumerator)null)] + [TestCase("goodname", "goodname", ExpectedResult = (IEnumerator)null)] + public IEnumerator FilterProfanitySenderName(string originalName, string filteredName) => + UniTask.ToCoroutine( + async () => + { + profanityFilter.Filter(originalName).Returns(UniTask.FromResult(filteredName)); + + var msg = new ChatEntryModel + { + messageType = ChatMessage.Type.PUBLIC, + senderName = originalName, + bodyText = "test" + }; + + await controller.SetChatMessage(msg); + + view.Received(1).SetEntry(Arg.Is(model => model.senderName.Equals(filteredName))); + }); + + [UnityTest] + [TestCase("assholeeee", "*******eee", ExpectedResult = (IEnumerator)null)] + [TestCase("goodname", "goodname", ExpectedResult = (IEnumerator)null)] + public IEnumerator FilterProfanityReceiverName(string originalName, string filteredName) => + UniTask.ToCoroutine( + async () => + { + profanityFilter.Filter(originalName).Returns(UniTask.FromResult(filteredName)); + + var msg = new ChatEntryModel + { + messageType = ChatMessage.Type.PUBLIC, + senderName = "test", + recipientName = originalName, + bodyText = "test" + }; + + await controller.SetChatMessage(msg); + + view.Received(1).SetEntry(Arg.Is(model => model.recipientName.Equals(filteredName))); + }); + + [UnityTest] + public IEnumerator DoNotFilterProfanityMessageWhenFeatureFlagIsDisabled() => + UniTask.ToCoroutine(async () => { - profanityFilter.Filter(originalName).Returns(UniTask.FromResult(filteredName)); + dataStore.settings.profanityChatFilteringEnabled.Set(false); var msg = new ChatEntryModel { messageType = ChatMessage.Type.PUBLIC, - senderName = originalName, - bodyText = "test" + senderName = "test", + bodyText = "shit" }; await controller.SetChatMessage(msg); - view.Received(1).SetEntry(Arg.Is(model => model.senderName.Equals(filteredName))); + view.Received(1) + .SetEntry(Arg.Is(model => model.bodyText == $"{msg.bodyText}")); }); - [UnityTest] - [TestCase("assholeeee", "*******eee", ExpectedResult = (IEnumerator)null)] - [TestCase("goodname", "goodname", ExpectedResult = (IEnumerator)null)] - public IEnumerator FilterProfanityReceiverName(string originalName, string filteredName) => - UniTask.ToCoroutine( - async () => + [UnityTest] + public IEnumerator DoNotFilterProfanityMessageWhenIsPrivate() => + UniTask.ToCoroutine(async () => { - profanityFilter.Filter(originalName).Returns(UniTask.FromResult(filteredName)); - var msg = new ChatEntryModel { - messageType = ChatMessage.Type.PUBLIC, + messageType = ChatMessage.Type.PRIVATE, senderName = "test", - recipientName = originalName, - bodyText = "test" + bodyText = "shit" }; await controller.SetChatMessage(msg); - view.Received(1).SetEntry(Arg.Is(model => model.recipientName.Equals(filteredName))); + view.Received(1) + .SetEntry(Arg.Is(model => model.bodyText == $"{msg.bodyText}")); }); - [UnityTest] - public IEnumerator DoNotFilterProfanityMessageWhenFeatureFlagIsDisabled() => - UniTask.ToCoroutine(async () => + [Test] + public void DisplayNextMessageInHistory() { - dataStore.settings.profanityChatFilteringEnabled.Set(false); + view.OnSendMessage += Raise.Event>(new ChatMessage(ChatMessage.Type.PUBLIC, "test", "hey")); + view.OnSendMessage += Raise.Event>(new ChatMessage(ChatMessage.Type.PUBLIC, "test", "sup")); + view.OnNextChatInHistory += Raise.Event(); + view.OnNextChatInHistory += Raise.Event(); - var msg = new ChatEntryModel + Received.InOrder(() => { - messageType = ChatMessage.Type.PUBLIC, - senderName = "test", - bodyText = "shit" - }; - - await controller.SetChatMessage(msg); - - view.Received(1) - .SetEntry(Arg.Is(model => model.bodyText == $"{msg.bodyText}")); - }); + view.SetInputFieldText("sup"); + view.SetInputFieldText("hey"); + }); + } - [UnityTest] - public IEnumerator DoNotFilterProfanityMessageWhenIsPrivate() => - UniTask.ToCoroutine(async () => + [Test] + public void DisplayPreviousMessageInHistory() { - var msg = new ChatEntryModel + view.OnSendMessage += Raise.Event>(new ChatMessage(ChatMessage.Type.PUBLIC, "test", "hey")); + view.OnSendMessage += Raise.Event>(new ChatMessage(ChatMessage.Type.PUBLIC, "test", "sup")); + view.OnPreviousChatInHistory += Raise.Event(); + view.OnPreviousChatInHistory += Raise.Event(); + + Received.InOrder(() => { - messageType = ChatMessage.Type.PRIVATE, - senderName = "test", - bodyText = "shit" - }; + view.SetInputFieldText("hey"); + view.SetInputFieldText("sup"); + }); + } - await controller.SetChatMessage(msg); + [Test] + public void DoNotDuplicateMessagesInHistory() + { + const string repeatedMessage = "hey"; - view.Received(1) - .SetEntry(Arg.Is(model => model.bodyText == $"{msg.bodyText}")); - }); + view.OnSendMessage += Raise.Event>(new ChatMessage(ChatMessage.Type.PUBLIC, "test", repeatedMessage)); + view.OnSendMessage += Raise.Event>(new ChatMessage(ChatMessage.Type.PUBLIC, "test", repeatedMessage)); + view.OnSendMessage += Raise.Event>(new ChatMessage(ChatMessage.Type.PUBLIC, "test", "bleh")); + view.OnNextChatInHistory += Raise.Event(); + view.OnNextChatInHistory += Raise.Event(); + view.OnNextChatInHistory += Raise.Event(); - [Test] - public void DisplayNextMessageInHistory() - { - view.OnSendMessage += Raise.Event>(new ChatMessage(ChatMessage.Type.PUBLIC, "test", "hey")); - view.OnSendMessage += Raise.Event>(new ChatMessage(ChatMessage.Type.PUBLIC, "test", "sup")); - view.OnNextChatInHistory += Raise.Event(); - view.OnNextChatInHistory += Raise.Event(); + Received.InOrder(() => + { + view.SetInputFieldText("bleh"); + view.SetInputFieldText(repeatedMessage); + view.SetInputFieldText("bleh"); + }); + } - Received.InOrder(() => + [TestCase(false)] + [TestCase(true)] + public void ResetInputField(bool loseFocus) { - view.SetInputFieldText("sup"); - view.SetInputFieldText("hey"); - }); - } + controller.ResetInputField(loseFocus); - [Test] - public void DisplayPreviousMessageInHistory() - { - view.OnSendMessage += Raise.Event>(new ChatMessage(ChatMessage.Type.PUBLIC, "test", "hey")); - view.OnSendMessage += Raise.Event>(new ChatMessage(ChatMessage.Type.PUBLIC, "test", "sup")); - view.OnPreviousChatInHistory += Raise.Event(); - view.OnPreviousChatInHistory += Raise.Event(); + view.Received(1).ResetInputField(loseFocus); + } - Received.InOrder(() => + [Test] + public void UnfocusInputField() { - view.SetInputFieldText("hey"); - view.SetInputFieldText("sup"); - }); - } - - [Test] - public void DoNotDuplicateMessagesInHistory() - { - const string repeatedMessage = "hey"; + controller.UnfocusInputField(); - view.OnSendMessage += Raise.Event>(new ChatMessage(ChatMessage.Type.PUBLIC, "test", repeatedMessage)); - view.OnSendMessage += Raise.Event>(new ChatMessage(ChatMessage.Type.PUBLIC, "test", repeatedMessage)); - view.OnSendMessage += Raise.Event>(new ChatMessage(ChatMessage.Type.PUBLIC, "test", "bleh")); - view.OnNextChatInHistory += Raise.Event(); - view.OnNextChatInHistory += Raise.Event(); - view.OnNextChatInHistory += Raise.Event(); + view.Received(1).UnfocusInputField(); + } - Received.InOrder(() => + [TestCase("hehe")] + [TestCase("jojo")] + [TestCase("lelleolololohohoho")] + public void SetInputFieldText(string text) { - view.SetInputFieldText("bleh"); - view.SetInputFieldText(repeatedMessage); - view.SetInputFieldText("bleh"); - }); - } - - [TestCase(false)] - [TestCase(true)] - public void ResetInputField(bool loseFocus) - { - controller.ResetInputField(loseFocus); - - view.Received(1).ResetInputField(loseFocus); - } + controller.SetInputFieldText(text); - [Test] - public void UnfocusInputField() - { - controller.UnfocusInputField(); + view.Received(1).SetInputFieldText(text); + } - view.Received(1).UnfocusInputField(); - } + [Test] + public void ClearAllEntries() + { + controller.ClearAllEntries(); - [TestCase("hehe")] - [TestCase("jojo")] - [TestCase("lelleolololohohoho")] - public void SetInputFieldText(string text) - { - controller.SetInputFieldText(text); + view.Received(1).ClearAllEntries(); + } - view.Received(1).SetInputFieldText(text); - } + [Test] + public void SetChannelJoinSourceWhenJoinCommandIsWritten() + { + view.OnSendMessage += Raise.Event>(new ChatMessage(ChatMessage.Type.PUBLIC, "test", "/join my-channel")); - [Test] - public void ClearAllEntries() - { - controller.ClearAllEntries(); + Assert.AreEqual(ChannelJoinedSource.Command, dataStore.channels.channelJoinedSource.Get()); + } - view.Received(1).ClearAllEntries(); - } + [TestCase("@", 1)] + [TestCase("@u", 2)] + [TestCase("hey @", 5)] + public void ShowMentionSuggestions(string text, int cursorPosition) + { + UserProfile user1 = GivenProfile("u1", "userName1", "faceU1"); + UserProfile user2 = GivenProfile("u2", "userName2", "faceU2"); - [Test] - public void SetChannelJoinSourceWhenJoinCommandIsWritten() - { - view.OnSendMessage += Raise.Event>(new ChatMessage(ChatMessage.Type.PUBLIC, "test", "/join my-channel")); + suggestedProfilesAction = () => new List + { + user1, + user2, + }; - Assert.AreEqual(ChannelJoinedSource.Command, dataStore.channels.channelJoinedSource.Get()); - } + view.OnMessageUpdated += Raise.Event>(text, cursorPosition); - [TestCase("@", 1)] - [TestCase("@u", 2)] - [TestCase("hey @", 5)] - public void ShowMentionSuggestions(string text, int cursorPosition) - { - UserProfile user1 = GivenProfile("u1", "userName1", "faceU1"); - UserProfile user2 = GivenProfile("u2", "userName2", "faceU2"); + view.Received(1).ShowMentionSuggestions(); - suggestedProfilesAction = () => new List + view.Received(1) + .SetMentionSuggestions(Arg.Is>(l => + l[0].userId == "u1" && l[0].userName == "userName1" && l[0].imageUrl == "faceU1" + && l[1].userId == "u2" && l[1].userName == "userName2" && l[1].imageUrl == "faceU2")); + } + + [TestCase("h", 1)] + [TestCase("how are you?", 4)] + [TestCase("my email is something@domain.com", 0)] + [TestCase("i just wrote an @ ", 18)] + public void DoNotShowMentionSuggestionsWhenNoPatternIsMatched(string text, int cursorPosition) { - user1, - user2, - }; - - view.OnMessageUpdated += Raise.Event>(text, cursorPosition); + UserProfile user1 = GivenProfile("u1", "userName1", "faceU1"); + UserProfile user2 = GivenProfile("u2", "userName2", "faceU2"); - view.Received(1).ShowMentionSuggestions(); + suggestedProfilesAction = () => new List + { + user1, + user2, + }; - view.Received(1) - .SetMentionSuggestions(Arg.Is>(l => - l[0].userId == "u1" && l[0].userName == "userName1" && l[0].imageUrl == "faceU1" - && l[1].userId == "u2" && l[1].userName == "userName2" && l[1].imageUrl == "faceU2")); - } + view.OnMessageUpdated += Raise.Event>(text, cursorPosition); - [TestCase("h", 1)] - [TestCase("how are you?", 4)] - [TestCase("my email is something@domain.com", 0)] - [TestCase("i just wrote an @ ", 18)] - public void DoNotShowMentionSuggestionsWhenNoPatternIsMatched(string text, int cursorPosition) - { - UserProfile user1 = GivenProfile("u1", "userName1", "faceU1"); - UserProfile user2 = GivenProfile("u2", "userName2", "faceU2"); + view.Received(0).ShowMentionSuggestions(); + view.Received(0).SetMentionSuggestions(Arg.Any>()); + } - suggestedProfilesAction = () => new List + [Test] + public void HideSuggestionsWhenExceptionOccurs() { - user1, - user2, - }; + view.ClearReceivedCalls(); + suggestedProfilesAction = () => throw new Exception("Intended exception"); - view.OnMessageUpdated += Raise.Event>(text, cursorPosition); + view.OnMessageUpdated += Raise.Event>("@", 1); - view.Received(0).ShowMentionSuggestions(); - view.Received(0).SetMentionSuggestions(Arg.Any>()); - } + view.Received(1).HideMentionSuggestions(); + view.Received(0).ShowMentionSuggestions(); + view.Received(0).SetMentionSuggestions(Arg.Any>()); + } - [Test] - public void HideSuggestionsWhenExceptionOccurs() - { - view.ClearReceivedCalls(); - suggestedProfilesAction = () => throw new Exception("Intended exception"); + [UnityTest] + public IEnumerator FetchRecipientProfileWhenMissing() => + UniTask.ToCoroutine(async () => + { + const string SENDER_ID = "senId"; + const string SENDER_NAME = "senderName"; + const string RECIPIENT_ID = "recId"; + const string RECIPIENT_NAME = "recipientName"; - view.OnMessageUpdated += Raise.Event>("@", 1); + var senderProfile = GivenProfile(SENDER_ID, SENDER_NAME, ""); + userProfileBridge.Get(SENDER_ID).Returns(senderProfile); - view.Received(1).HideMentionSuggestions(); - view.Received(0).ShowMentionSuggestions(); - view.Received(0).SetMentionSuggestions(Arg.Any>()); - } + var recipientProfile = GivenProfile(RECIPIENT_ID, RECIPIENT_NAME, ""); - [UnityTest] - public IEnumerator FetchRecipientProfileWhenMissing() => - UniTask.ToCoroutine(async () => - { - const string SENDER_ID = "senId"; - const string SENDER_NAME = "senderName"; - const string RECIPIENT_ID = "recId"; - const string RECIPIENT_NAME = "recipientName"; + userProfileBridge.RequestFullUserProfileAsync(RECIPIENT_ID, Arg.Any()) + .Returns(UniTask.FromResult(recipientProfile)); - var senderProfile = GivenProfile(SENDER_ID, SENDER_NAME, ""); - userProfileBridge.Get(SENDER_ID).Returns(senderProfile); + userProfileBridge.Get(RECIPIENT_ID).Returns(null, recipientProfile); - var recipientProfile = GivenProfile(RECIPIENT_ID, RECIPIENT_NAME, ""); + controller.SetChatMessage(new ChatMessage("msg1", ChatMessage.Type.PRIVATE, SENDER_ID, "hey", 100) + { + recipient = RECIPIENT_ID, + }); - userProfileBridge.RequestFullUserProfileAsync(RECIPIENT_ID, Arg.Any()) - .Returns(UniTask.FromResult(recipientProfile)); + await UniTask.NextFrame(); - userProfileBridge.Get(RECIPIENT_ID).Returns(null, recipientProfile); + userProfileBridge.Received(1).RequestFullUserProfileAsync(RECIPIENT_ID, Arg.Any()); - controller.SetChatMessage(new ChatMessage("msg1", ChatMessage.Type.PRIVATE, SENDER_ID, "hey", 100) - { - recipient = RECIPIENT_ID, + Received.InOrder(() => + { + view.SetEntry(Arg.Is(c => c.recipientName == RECIPIENT_ID)); + view.SetEntry(Arg.Is(c => c.recipientName == RECIPIENT_NAME)); + }); }); - await UniTask.NextFrame(); - - userProfileBridge.Received(1).RequestFullUserProfileAsync(RECIPIENT_ID, Arg.Any()); - - Received.InOrder(() => + [UnityTest] + public IEnumerator FetchSenderProfileWhenMissing() => + UniTask.ToCoroutine(async () => { - view.SetEntry(Arg.Is(c => c.recipientName == RECIPIENT_ID)); - view.SetEntry(Arg.Is(c => c.recipientName == RECIPIENT_NAME)); - }); - }); + const string RECIPIENT_ID = "recId"; + const string RECIPIENT_NAME = "recipientName"; + const string SENDER_ID = "senId"; + const string SENDER_NAME = "senderName"; - [UnityTest] - public IEnumerator FetchSenderProfileWhenMissing() => - UniTask.ToCoroutine(async () => - { - const string RECIPIENT_ID = "recId"; - const string RECIPIENT_NAME = "recipientName"; - const string SENDER_ID = "senId"; - const string SENDER_NAME = "senderName"; - - var recipientProfile = ScriptableObject.CreateInstance(); - recipientProfile.UpdateData(new UserProfileModel { userId = RECIPIENT_ID, name = RECIPIENT_NAME }); - userProfileBridge.Get(RECIPIENT_ID).Returns(recipientProfile); + var recipientProfile = ScriptableObject.CreateInstance(); + recipientProfile.UpdateData(new UserProfileModel { userId = RECIPIENT_ID, name = RECIPIENT_NAME }); + userProfileBridge.Get(RECIPIENT_ID).Returns(recipientProfile); - var senderProfile = ScriptableObject.CreateInstance(); - senderProfile.UpdateData(new UserProfileModel { userId = SENDER_ID, name = SENDER_NAME }); + var senderProfile = ScriptableObject.CreateInstance(); + senderProfile.UpdateData(new UserProfileModel { userId = SENDER_ID, name = SENDER_NAME }); - userProfileBridge.RequestFullUserProfileAsync(SENDER_ID, Arg.Any()) - .Returns(UniTask.FromResult(senderProfile)); + userProfileBridge.RequestFullUserProfileAsync(SENDER_ID, Arg.Any()) + .Returns(UniTask.FromResult(senderProfile)); - userProfileBridge.Get(SENDER_ID).Returns(null, senderProfile); + userProfileBridge.Get(SENDER_ID).Returns(null, senderProfile); - controller.SetChatMessage(new ChatMessage("msg1", ChatMessage.Type.PUBLIC, SENDER_ID, "hey", 100)); + controller.SetChatMessage(new ChatMessage("msg1", ChatMessage.Type.PUBLIC, SENDER_ID, "hey", 100)); - await UniTask.NextFrame(); + await UniTask.NextFrame(); - userProfileBridge.Received(1).RequestFullUserProfileAsync(SENDER_ID, Arg.Any()); + userProfileBridge.Received(1).RequestFullUserProfileAsync(SENDER_ID, Arg.Any()); - Received.InOrder(() => - { - view.SetEntry(Arg.Is(c => c.senderName == SENDER_ID)); - view.SetEntry(Arg.Is(c => c.senderName == SENDER_NAME)); + Received.InOrder(() => + { + view.SetEntry(Arg.Is(c => c.senderName == SENDER_ID)); + view.SetEntry(Arg.Is(c => c.senderName == SENDER_NAME)); + }); }); - }); - - [UnityTest] - public IEnumerator ApplyEllipsisFormatWhenProfileIsMissing() => - UniTask.ToCoroutine(async () => - { - const string SENDER_ID = "0xfa58d678567fa5678587fd4"; - const string RECIPIENT_ID = "0xfa2d32345f2a5f352af3df"; - userProfileBridge.RequestFullUserProfileAsync(SENDER_ID, Arg.Any()) - .Returns(UniTask.FromResult(GivenProfile(SENDER_ID, "senderName", ""))); + [UnityTest] + public IEnumerator ApplyEllipsisFormatWhenProfileIsMissing() => + UniTask.ToCoroutine(async () => + { + const string SENDER_ID = "0xfa58d678567fa5678587fd4"; + const string RECIPIENT_ID = "0xfa2d32345f2a5f352af3df"; - userProfileBridge.Get(SENDER_ID).Returns((UserProfile)null); + userProfileBridge.RequestFullUserProfileAsync(SENDER_ID, Arg.Any()) + .Returns(UniTask.FromResult(GivenProfile(SENDER_ID, "senderName", ""))); - userProfileBridge.RequestFullUserProfileAsync(RECIPIENT_ID, Arg.Any()) - .Returns(UniTask.FromResult(GivenProfile(RECIPIENT_ID, "recipientName", ""))); + userProfileBridge.Get(SENDER_ID).Returns((UserProfile)null); - userProfileBridge.Get(RECIPIENT_ID).Returns((UserProfile)null); + userProfileBridge.RequestFullUserProfileAsync(RECIPIENT_ID, Arg.Any()) + .Returns(UniTask.FromResult(GivenProfile(RECIPIENT_ID, "recipientName", ""))); - controller.SetChatMessage(new ChatMessage("msg1", ChatMessage.Type.PRIVATE, SENDER_ID, "hey", 100) - { - recipient = RECIPIENT_ID, - }); + userProfileBridge.Get(RECIPIENT_ID).Returns((UserProfile)null); - await UniTask.NextFrame(); + controller.SetChatMessage(new ChatMessage("msg1", ChatMessage.Type.PRIVATE, SENDER_ID, "hey", 100) + { + recipient = RECIPIENT_ID, + }); - userProfileBridge.Received(1).RequestFullUserProfileAsync(SENDER_ID, Arg.Any()); + await UniTask.NextFrame(); - view.SetEntry(Arg.Is(c => c.senderName == "0xfa...7fd4" && c.recipientName == "0xfa...f3df")); - }); + userProfileBridge.Received(1).RequestFullUserProfileAsync(SENDER_ID, Arg.Any()); - private UserProfile GivenProfile(string userId, string username, string face256) - { - UserProfile user1 = ScriptableObject.CreateInstance(); + view.SetEntry(Arg.Is(c => c.senderName == "0xfa...7fd4" && c.recipientName == "0xfa...f3df")); + }); - user1.UpdateData(new UserProfileModel + private UserProfile GivenProfile(string userId, string username, string face256) { - userId = userId, - name = username, - snapshots = new UserProfileModel.Snapshots + UserProfile user1 = ScriptableObject.CreateInstance(); + + user1.UpdateData(new UserProfileModel { - face256 = face256, - }, - }); + userId = userId, + name = username, + snapshots = new UserProfileModel.Snapshots + { + face256 = face256, + }, + }); - return user1; + return user1; + } } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/ChatHUDTests.asmdef b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/ChatHUDTests.asmdef index 33fd5edac6..036800dcdd 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/ChatHUDTests.asmdef +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/ChatHUDTests.asmdef @@ -23,7 +23,8 @@ "GUID:1320d33ea2522ba4e8e60cf9e6a351dd", "GUID:fbcc413e192ef9048811d47ab0aca0c0", "GUID:ee6523961ef177343ad763fcd55c7c46", - "GUID:c9fbb75c15a4cd042b731877ede4a5c1" + "GUID:c9fbb75c15a4cd042b731877ede4a5c1", + "GUID:e5b8a8ed154ad624f99bcb73d3284a90" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/ChatHUDViewShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/ChatHUDViewShould.cs index c49c8e1469..baf73bd2e7 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/ChatHUDViewShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/ChatHUDViewShould.cs @@ -1,4 +1,4 @@ -using DCL.Chat.HUD; +using DCL.Social.Chat; using DCL.Interface; using NSubstitute; using NUnit.Framework; diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/DateSeparatorEntryShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/DateSeparatorEntryShould.cs index 44d47c0d47..5cbc13efb2 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/DateSeparatorEntryShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/DateSeparatorEntryShould.cs @@ -1,4 +1,5 @@ -using System; +using DCL.Social.Chat; +using System; using NUnit.Framework; using UnityEditor; using UnityEngine; diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/DefaultChatEntryShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/DefaultChatEntryShould.cs index 698fde4459..884a050b28 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/DefaultChatEntryShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/DefaultChatEntryShould.cs @@ -1,5 +1,5 @@ using Cysharp.Threading.Tasks; -using DCL.Chat.HUD; +using DCL.Social.Chat; using DCL.Interface; using NSubstitute; using NUnit.Framework; diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/HUD.asmdef b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/HUD.asmdef index f35143d87f..30850b4214 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/HUD.asmdef +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/HUD.asmdef @@ -88,7 +88,8 @@ "GUID:7fe146b43e76fe745aeaf2020feb54b7", "GUID:4d3366a36e77f41cfb7436340334e236", "GUID:0f15c7a7fa0e4b94aaceddb51ad829ac", - "GUID:006c0e0a70294dbba8a4cbcfb77e1f7d" + "GUID:006c0e0a70294dbba8a4cbcfb77e1f7d", + "GUID:2ce94b4811f2a4b9b8dfd650158f7796" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/HUDController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/HUDController.cs index e1569df701..e6acadcd93 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/HUDController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/HUDController.cs @@ -1,10 +1,11 @@ using Cysharp.Threading.Tasks; using DCL; using DCL.Chat; -using DCL.Chat.HUD; +using DCL.Social.Chat; using DCL.HelpAndSupportHUD; using DCL.NotificationModel; using DCL.SettingsPanelHUD; +using DCL.Social.Chat; using DCL.Social.Friends; using System; using System.Collections.Generic; diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/HUDFactory.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/HUDFactory.cs index cf1af1cb6a..3a45629d0f 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/HUDFactory.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/HUDFactory.cs @@ -2,7 +2,6 @@ using DCL; using DCL.Browser; using DCL.Chat; -using DCL.Chat.HUD; using DCL.HelpAndSupportHUD; using DCL.ProfanityFiltering; using DCL.Providers; @@ -10,7 +9,6 @@ using DCL.SettingsPanelHUD; using DCL.Social.Chat.Mentions; using DCL.Social.Friends; -using SignupHUD; using SocialFeaturesAnalytics; using System; using System.Collections.Generic; @@ -19,6 +17,7 @@ using Environment = DCL.Environment; using Analytics; using DCL.MyAccount; +using DCL.Social.Chat; using DCLServices.PlacesAPIService; using UnityEngine; using Object = UnityEngine.Object; @@ -119,7 +118,8 @@ public virtual async UniTask CreateHUD(HUDElementID hudElementId, Cancella Environment.i.platform.serviceProviders.analytics, new UserProfileWebInterfaceBridge()), SceneReferences.i.mouseCatcher, - new MemoryChatMentionSuggestionProvider(UserProfileController.i, DataStore.i)); + new MemoryChatMentionSuggestionProvider(UserProfileController.i, DataStore.i), + Clipboard.Create()); case HUDElementID.PUBLIC_CHAT: return new PublicChatWindowController( Environment.i.serviceLocator.Get(), @@ -130,7 +130,8 @@ public virtual async UniTask CreateHUD(HUDElementID hudElementId, Cancella new MemoryChatMentionSuggestionProvider(UserProfileController.i, DataStore.i), new SocialAnalytics( Environment.i.platform.serviceProviders.analytics, - new UserProfileWebInterfaceBridge())); + new UserProfileWebInterfaceBridge()), + Clipboard.Create()); case HUDElementID.CHANNELS_CHAT: return new ChatChannelHUDController( DataStore.i, @@ -141,7 +142,8 @@ public virtual async UniTask CreateHUD(HUDElementID hudElementId, Cancella Environment.i.platform.serviceProviders.analytics, new UserProfileWebInterfaceBridge()), Environment.i.serviceLocator.Get(), - new MemoryChatMentionSuggestionProvider(UserProfileController.i, DataStore.i)); + new MemoryChatMentionSuggestionProvider(UserProfileController.i, DataStore.i), + Clipboard.Create()); case HUDElementID.CHANNELS_SEARCH: return new SearchChannelsWindowController( Environment.i.serviceLocator.Get(), diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/PoolPrivateChatEntryFactory.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/PoolPrivateChatEntryFactory.cs index 3d581088f3..e7114db2fc 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/PoolPrivateChatEntryFactory.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/PoolPrivateChatEntryFactory.cs @@ -1,17 +1,18 @@ +using DCL.Social.Chat; using System.Collections.Generic; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { [CreateAssetMenu(fileName = "PoolPrivateChatEntryFactory", menuName = "DCL/Social/PoolPrivateChatEntryFactory")] public class PoolPrivateChatEntryFactory : ScriptableObject, IChatEntryFactory { private const string POOL_NAME_PREFIX = "ChatDateSeparators_"; private const int PRE_INSTANTIATED_ENTRIES = 30; - + [SerializeField] private PoolChatEntryFactory factory; [SerializeField] private DateSeparatorEntry separatorEntryPrefab; - + private readonly Dictionary pooledObjects = new Dictionary(); @@ -31,9 +32,9 @@ public void Destroy(ChatEntry entry) if (pooledObjects.TryGetValue(entry, out var pooledObj)) { pooledObj.Release(); - pooledObjects.Remove(entry); + pooledObjects.Remove(entry); } - + factory.Destroy(entry); } @@ -53,4 +54,4 @@ private Pool GetPool() return entryPool; } } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/PrivateChatHUDView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/PrivateChatHUDView.cs index bc9f85d8e9..57d55f1838 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/PrivateChatHUDView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/PrivateChatHUDView.cs @@ -1,4 +1,4 @@ -using DCL.Chat.HUD; +using DCL.Social.Chat; using System; using System.Collections.Generic; using UnityEngine; diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/PrivateChatWindowComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/PrivateChatWindowComponentView.cs index 96c2f7f6c1..e1083f2d67 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/PrivateChatWindowComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/PrivateChatWindowComponentView.cs @@ -1,4 +1,4 @@ -using DCL.Chat.HUD; +using DCL.Social.Chat; using DCL.Social.Chat; using DCL.Social.Friends; using SocialBar.UserThumbnail; diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/PrivateChatWindowController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/PrivateChatWindowController.cs index bfeea19128..345cdaafeb 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/PrivateChatWindowController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/PrivateChatWindowController.cs @@ -2,396 +2,401 @@ using System.Collections.Generic; using System.Threading; using Cysharp.Threading.Tasks; -using DCL; using DCL.Interface; -using DCL.Social.Chat; using DCL.Social.Chat.Mentions; using DCL.Social.Friends; using SocialFeaturesAnalytics; using UnityEngine; -public class PrivateChatWindowController : IHUD +namespace DCL.Social.Chat { - private const int USER_PRIVATE_MESSAGES_TO_REQUEST_FOR_INITIAL_LOAD = 30; - private const float REQUEST_MESSAGES_TIME_OUT = 2; - internal const int USER_PRIVATE_MESSAGES_TO_REQUEST_FOR_SHOW_MORE = 10; - - public IPrivateChatComponentView View { get; private set; } - - private readonly DataStore dataStore; - private readonly IUserProfileBridge userProfileBridge; - private readonly IChatController chatController; - private readonly IFriendsController friendsController; - private readonly ISocialAnalytics socialAnalytics; - private readonly IMouseCatcher mouseCatcher; - private readonly IChatMentionSuggestionProvider chatMentionSuggestionProvider; - private ChatHUDController chatHudController; - private UserProfile conversationProfile; - private float lastRequestTime; - private CancellationTokenSource deactivateFadeOutCancellationToken = new CancellationTokenSource(); - private bool shouldRequestMessages; - private ulong oldestTimestamp = ulong.MaxValue; - private string oldestMessageId; - private string conversationUserId; - private BaseVariable> visibleTaskbarPanels => dataStore.HUDs.visibleTaskbarPanels; - - public event Action OnBack; - public event Action OnClosed; - - public PrivateChatWindowController(DataStore dataStore, - IUserProfileBridge userProfileBridge, - IChatController chatController, - IFriendsController friendsController, - ISocialAnalytics socialAnalytics, - IMouseCatcher mouseCatcher, - IChatMentionSuggestionProvider chatMentionSuggestionProvider) + public class PrivateChatWindowController : IHUD { - this.dataStore = dataStore; - this.userProfileBridge = userProfileBridge; - this.chatController = chatController; - this.friendsController = friendsController; - this.socialAnalytics = socialAnalytics; - this.mouseCatcher = mouseCatcher; - this.chatMentionSuggestionProvider = chatMentionSuggestionProvider; - } + private const int USER_PRIVATE_MESSAGES_TO_REQUEST_FOR_INITIAL_LOAD = 30; + private const float REQUEST_MESSAGES_TIME_OUT = 2; + internal const int USER_PRIVATE_MESSAGES_TO_REQUEST_FOR_SHOW_MORE = 10; + + public IPrivateChatComponentView View { get; private set; } + + private readonly DataStore dataStore; + private readonly IUserProfileBridge userProfileBridge; + private readonly IChatController chatController; + private readonly IFriendsController friendsController; + private readonly ISocialAnalytics socialAnalytics; + private readonly IMouseCatcher mouseCatcher; + private readonly IChatMentionSuggestionProvider chatMentionSuggestionProvider; + private readonly IClipboard clipboard; + private ChatHUDController chatHudController; + private UserProfile conversationProfile; + private float lastRequestTime; + private CancellationTokenSource deactivateFadeOutCancellationToken = new CancellationTokenSource(); + private bool shouldRequestMessages; + private ulong oldestTimestamp = ulong.MaxValue; + private string oldestMessageId; + private string conversationUserId; + private BaseVariable> visibleTaskbarPanels => dataStore.HUDs.visibleTaskbarPanels; + + public event Action OnBack; + public event Action OnClosed; + + public PrivateChatWindowController(DataStore dataStore, + IUserProfileBridge userProfileBridge, + IChatController chatController, + IFriendsController friendsController, + ISocialAnalytics socialAnalytics, + IMouseCatcher mouseCatcher, + IChatMentionSuggestionProvider chatMentionSuggestionProvider, + IClipboard clipboard) + { + this.dataStore = dataStore; + this.userProfileBridge = userProfileBridge; + this.chatController = chatController; + this.friendsController = friendsController; + this.socialAnalytics = socialAnalytics; + this.mouseCatcher = mouseCatcher; + this.chatMentionSuggestionProvider = chatMentionSuggestionProvider; + this.clipboard = clipboard; + } - public void Initialize(IPrivateChatComponentView view) - { - View = view; - View.Initialize(friendsController, socialAnalytics); - view.OnPressBack -= HandlePressBack; - view.OnPressBack += HandlePressBack; - view.OnClose -= Hide; - view.OnClose += Hide; - view.OnMinimize += MinimizeView; - view.OnUnfriend += Unfriend; + public void Initialize(IPrivateChatComponentView view) + { + View = view; + View.Initialize(friendsController, socialAnalytics); + view.OnPressBack -= HandlePressBack; + view.OnPressBack += HandlePressBack; + view.OnClose -= Hide; + view.OnClose += Hide; + view.OnMinimize += MinimizeView; + view.OnUnfriend += Unfriend; - if (mouseCatcher != null) - mouseCatcher.OnMouseLock += Hide; + if (mouseCatcher != null) + mouseCatcher.OnMouseLock += Hide; - view.OnRequireMoreMessages += RequestOldConversations; + view.OnRequireMoreMessages += RequestOldConversations; - dataStore.mentions.someoneMentionedFromContextMenu.OnChange += SomeoneMentionedFromContextMenu; + dataStore.mentions.someoneMentionedFromContextMenu.OnChange += SomeoneMentionedFromContextMenu; - chatHudController = new ChatHUDController(dataStore, userProfileBridge, false, - async (name, count, ct) => - { - return await chatMentionSuggestionProvider.GetProfilesStartingWith(name, count, new[] + chatHudController = new ChatHUDController(dataStore, userProfileBridge, false, + async (name, count, ct) => { - userProfileBridge.GetOwn(), - userProfileBridge.Get(conversationUserId) - }, ct); - }, - socialAnalytics, - chatController); - - chatHudController.Initialize(view.ChatHUD); - chatHudController.SortingStrategy = new ChatEntrySortingByTimestamp(); - chatHudController.OnInputFieldSelected += HandleInputFieldSelected; - chatHudController.OnSendMessage += HandleSendChatMessage; - chatHudController.OnMessageSentBlockedBySpam += HandleMessageBlockedBySpam; - - chatController.OnAddMessage -= HandleMessageReceived; - chatController.OnAddMessage += HandleMessageReceived; - } - - public void Setup(string newConversationUserId) - { - if (string.IsNullOrEmpty(newConversationUserId) || newConversationUserId == conversationUserId) - return; + return await chatMentionSuggestionProvider.GetProfilesStartingWith(name, count, new[] + { + userProfileBridge.GetOwn(), + userProfileBridge.Get(conversationUserId) + }, ct); + }, + socialAnalytics, + chatController, + clipboard); + + chatHudController.Initialize(view.ChatHUD); + chatHudController.SortingStrategy = new ChatEntrySortingByTimestamp(); + chatHudController.OnInputFieldSelected += HandleInputFieldSelected; + chatHudController.OnSendMessage += HandleSendChatMessage; + chatHudController.OnMessageSentBlockedBySpam += HandleMessageBlockedBySpam; - var newConversationUserProfile = userProfileBridge.Get(newConversationUserId); + chatController.OnAddMessage -= HandleMessageReceived; + chatController.OnAddMessage += HandleMessageReceived; + } - conversationUserId = newConversationUserId; - conversationProfile = newConversationUserProfile; - chatHudController.ClearAllEntries(); - shouldRequestMessages = true; - } + public void Setup(string newConversationUserId) + { + if (string.IsNullOrEmpty(newConversationUserId) || newConversationUserId == conversationUserId) + return; - public void SetVisibility(bool visible) - { - if (View.IsActive == visible) - return; + var newConversationUserProfile = userProfileBridge.Get(newConversationUserId); - SetVisiblePanelList(visible); - chatHudController.SetVisibility(visible); - dataStore.HUDs.chatInputVisible.Set(visible); + conversationUserId = newConversationUserId; + conversationProfile = newConversationUserProfile; + chatHudController.ClearAllEntries(); + shouldRequestMessages = true; + } - if (visible) + public void SetVisibility(bool visible) { - View?.SetLoadingMessagesActive(false); - View?.SetOldMessagesLoadingActive(false); + if (View.IsActive == visible) + return; - if (conversationProfile != null) - { - var userStatus = friendsController.GetUserStatus(conversationUserId); + SetVisiblePanelList(visible); + chatHudController.SetVisibility(visible); + dataStore.HUDs.chatInputVisible.Set(visible); - View.Setup(conversationProfile, - userStatus.presence == PresenceStatus.ONLINE, - userProfileBridge.GetOwn().IsBlocked(conversationUserId)); + if (visible) + { + View?.SetLoadingMessagesActive(false); + View?.SetOldMessagesLoadingActive(false); - if (shouldRequestMessages) + if (conversationProfile != null) { - ResetPagination(); + var userStatus = friendsController.GetUserStatus(conversationUserId); + + View.Setup(conversationProfile, + userStatus.presence == PresenceStatus.ONLINE, + userProfileBridge.GetOwn().IsBlocked(conversationUserId)); + + if (shouldRequestMessages) + { + ResetPagination(); - RequestPrivateMessages( - conversationUserId, - USER_PRIVATE_MESSAGES_TO_REQUEST_FOR_INITIAL_LOAD, - null); + RequestPrivateMessages( + conversationUserId, + USER_PRIVATE_MESSAGES_TO_REQUEST_FOR_INITIAL_LOAD, + null); - shouldRequestMessages = false; + shouldRequestMessages = false; + } } - } - View.Show(); - Focus(); - } - else - { - chatHudController.UnfocusInputField(); - View.Hide(); + View.Show(); + Focus(); + } + else + { + chatHudController.UnfocusInputField(); + View.Hide(); + } } - } - public void Dispose() - { - if (chatHudController != null) + public void Dispose() { - chatHudController.OnInputFieldSelected -= HandleInputFieldSelected; - chatHudController.OnSendMessage -= HandleSendChatMessage; - chatHudController.OnMessageSentBlockedBySpam -= HandleMessageBlockedBySpam; - chatHudController.Dispose(); - } + if (chatHudController != null) + { + chatHudController.OnInputFieldSelected -= HandleInputFieldSelected; + chatHudController.OnSendMessage -= HandleSendChatMessage; + chatHudController.OnMessageSentBlockedBySpam -= HandleMessageBlockedBySpam; + chatHudController.Dispose(); + } - if (chatController != null) - chatController.OnAddMessage -= HandleMessageReceived; + if (chatController != null) + chatController.OnAddMessage -= HandleMessageReceived; - if (mouseCatcher != null) - mouseCatcher.OnMouseLock -= Hide; + if (mouseCatcher != null) + mouseCatcher.OnMouseLock -= Hide; - if (View != null) - { - View.OnPressBack -= HandlePressBack; - View.OnClose -= Hide; - View.OnMinimize -= MinimizeView; - View.OnUnfriend -= Unfriend; - View.OnFocused -= HandleViewFocused; - View.OnRequireMoreMessages -= RequestOldConversations; - View.Dispose(); + if (View != null) + { + View.OnPressBack -= HandlePressBack; + View.OnClose -= Hide; + View.OnMinimize -= MinimizeView; + View.OnUnfriend -= Unfriend; + View.OnFocused -= HandleViewFocused; + View.OnRequireMoreMessages -= RequestOldConversations; + View.Dispose(); + } + + dataStore.mentions.someoneMentionedFromContextMenu.OnChange -= SomeoneMentionedFromContextMenu; } - dataStore.mentions.someoneMentionedFromContextMenu.OnChange -= SomeoneMentionedFromContextMenu; - } + private void HandleSendChatMessage(ChatMessage message) + { + if (string.IsNullOrEmpty(conversationProfile.userName)) + return; - private void HandleSendChatMessage(ChatMessage message) - { - if (string.IsNullOrEmpty(conversationProfile.userName)) - return; + message.messageType = ChatMessage.Type.PRIVATE; + message.recipient = conversationProfile.userName; + message.receiverId = conversationProfile.userId; - message.messageType = ChatMessage.Type.PRIVATE; - message.recipient = conversationProfile.userName; - message.receiverId = conversationProfile.userId; + bool isValidMessage = !string.IsNullOrEmpty(message.body) + && !string.IsNullOrWhiteSpace(message.body) + && !string.IsNullOrEmpty(message.recipient); - bool isValidMessage = !string.IsNullOrEmpty(message.body) - && !string.IsNullOrWhiteSpace(message.body) - && !string.IsNullOrEmpty(message.recipient); + if (isValidMessage) + { + chatHudController.ResetInputField(); + chatHudController.FocusInputField(); + } + else + { + SetVisibility(false); + OnClosed?.Invoke(); + return; + } - if (isValidMessage) - { - chatHudController.ResetInputField(); - chatHudController.FocusInputField(); - } - else - { - SetVisibility(false); - OnClosed?.Invoke(); - return; + // If Kernel allowed for private messages without the whisper param we could avoid this line + message.body = $"/w {message.recipient} {message.body}"; + + chatController.Send(message); } - // If Kernel allowed for private messages without the whisper param we could avoid this line - message.body = $"/w {message.recipient} {message.body}"; + private void MinimizeView() => + SetVisibility(false); - chatController.Send(message); - } + private void HandleMessageReceived(ChatMessage[] messages) + { + var messageLogUpdated = false; - private void MinimizeView() => - SetVisibility(false); + var ownPlayerAlreadyMentioned = false; - private void HandleMessageReceived(ChatMessage[] messages) - { - var messageLogUpdated = false; + foreach (var message in messages) + { + if (!ownPlayerAlreadyMentioned) + ownPlayerAlreadyMentioned = CheckOwnPlayerMentionInDMs(message); - var ownPlayerAlreadyMentioned = false; + if (!IsMessageFomCurrentConversation(message)) continue; - foreach (var message in messages) - { - if (!ownPlayerAlreadyMentioned) - ownPlayerAlreadyMentioned = CheckOwnPlayerMentionInDMs(message); + chatHudController.SetChatMessage(message, limitMaxEntries: false); - if (!IsMessageFomCurrentConversation(message)) continue; + if (message.timestamp < oldestTimestamp) + { + oldestTimestamp = message.timestamp; + oldestMessageId = message.messageId; + } - chatHudController.SetChatMessage(message, limitMaxEntries: false); + View?.SetLoadingMessagesActive(false); + View?.SetOldMessagesLoadingActive(false); - if (message.timestamp < oldestTimestamp) - { - oldestTimestamp = message.timestamp; - oldestMessageId = message.messageId; + messageLogUpdated = true; } - View?.SetLoadingMessagesActive(false); - View?.SetOldMessagesLoadingActive(false); + deactivateFadeOutCancellationToken.Cancel(); + deactivateFadeOutCancellationToken = new CancellationTokenSource(); - messageLogUpdated = true; + if (View.IsActive && messageLogUpdated) + MarkUserChatMessagesAsRead(); } - deactivateFadeOutCancellationToken.Cancel(); - deactivateFadeOutCancellationToken = new CancellationTokenSource(); - - if (View.IsActive && messageLogUpdated) - MarkUserChatMessagesAsRead(); - } - - private bool CheckOwnPlayerMentionInDMs(ChatMessage message) - { - var ownUserProfile = userProfileBridge.GetOwn(); + private bool CheckOwnPlayerMentionInDMs(ChatMessage message) + { + var ownUserProfile = userProfileBridge.GetOwn(); - if (message.sender == ownUserProfile.userId || - (message.sender == conversationUserId && View.IsActive) || - message.messageType != ChatMessage.Type.PRIVATE || - !MentionsUtils.IsUserMentionedInText(ownUserProfile.userName, message.body)) - return false; + if (message.sender == ownUserProfile.userId || + (message.sender == conversationUserId && View.IsActive) || + message.messageType != ChatMessage.Type.PRIVATE || + !MentionsUtils.IsUserMentionedInText(ownUserProfile.userName, message.body)) + return false; - dataStore.mentions.ownPlayerMentionedInDM.Set(message.sender, true); - return true; - } + dataStore.mentions.ownPlayerMentionedInDM.Set(message.sender, true); + return true; + } - private void Hide() - { - SetVisibility(false); - OnClosed?.Invoke(); - } + private void Hide() + { + SetVisibility(false); + OnClosed?.Invoke(); + } - private void Show() - { - SetVisibility(true); - } + private void Show() + { + SetVisibility(true); + } - private void HandlePressBack() => - OnBack?.Invoke(); + private void HandlePressBack() => + OnBack?.Invoke(); - private void Unfriend(string friendId) - { - dataStore.notifications.GenericConfirmation.Set(GenericConfirmationNotificationData.CreateUnFriendData( - UserProfileController.userProfilesCatalog.Get(friendId)?.userName, - () => - { - friendsController.RemoveFriend(friendId); - Hide(); - }), true); - } + private void Unfriend(string friendId) + { + dataStore.notifications.GenericConfirmation.Set(GenericConfirmationNotificationData.CreateUnFriendData( + UserProfileController.userProfilesCatalog.Get(friendId)?.userName, + () => + { + friendsController.RemoveFriend(friendId); + Hide(); + }), true); + } - private bool IsMessageFomCurrentConversation(ChatMessage message) - { - return message.messageType == ChatMessage.Type.PRIVATE && - (message.sender == conversationUserId || message.recipient == conversationUserId); - } + private bool IsMessageFomCurrentConversation(ChatMessage message) + { + return message.messageType == ChatMessage.Type.PRIVATE && + (message.sender == conversationUserId || message.recipient == conversationUserId); + } - private void MarkUserChatMessagesAsRead() => - chatController.MarkMessagesAsSeen(conversationUserId); + private void MarkUserChatMessagesAsRead() => + chatController.MarkMessagesAsSeen(conversationUserId); - private void HandleInputFieldSelected() - { - Show(); + private void HandleInputFieldSelected() + { + Show(); - // The messages from 'conversationUserId' are marked as read if the player clicks on the input field of the private chat - //MarkUserChatMessagesAsRead(); - } + // The messages from 'conversationUserId' are marked as read if the player clicks on the input field of the private chat + //MarkUserChatMessagesAsRead(); + } - private void HandleViewFocused(bool focused) - { - if (focused) + private void HandleViewFocused(bool focused) { - deactivateFadeOutCancellationToken.Cancel(); - deactivateFadeOutCancellationToken = new CancellationTokenSource(); + if (focused) + { + deactivateFadeOutCancellationToken.Cancel(); + deactivateFadeOutCancellationToken = new CancellationTokenSource(); + } } - } - private void SetVisiblePanelList(bool visible) - { - HashSet newSet = visibleTaskbarPanels.Get(); + private void SetVisiblePanelList(bool visible) + { + HashSet newSet = visibleTaskbarPanels.Get(); - if (visible) - newSet.Add("PrivateChatChannel"); - else - newSet.Remove("PrivateChatChannel"); + if (visible) + newSet.Add("PrivateChatChannel"); + else + newSet.Remove("PrivateChatChannel"); - visibleTaskbarPanels.Set(newSet, true); - } + visibleTaskbarPanels.Set(newSet, true); + } - internal void RequestPrivateMessages(string userId, int limit, string fromMessageId) - { - View?.SetLoadingMessagesActive(true); - chatController.GetPrivateMessages(userId, limit, fromMessageId); - WaitForRequestTimeOutThenHideLoadingFeedback().Forget(); - } + internal void RequestPrivateMessages(string userId, int limit, string fromMessageId) + { + View?.SetLoadingMessagesActive(true); + chatController.GetPrivateMessages(userId, limit, fromMessageId); + WaitForRequestTimeOutThenHideLoadingFeedback().Forget(); + } - internal void RequestOldConversations() - { - if (IsLoadingMessages()) return; + internal void RequestOldConversations() + { + if (IsLoadingMessages()) return; - chatController.GetPrivateMessages( - conversationUserId, - USER_PRIVATE_MESSAGES_TO_REQUEST_FOR_SHOW_MORE, - oldestMessageId); + chatController.GetPrivateMessages( + conversationUserId, + USER_PRIVATE_MESSAGES_TO_REQUEST_FOR_SHOW_MORE, + oldestMessageId); - lastRequestTime = Time.realtimeSinceStartup; - View?.SetOldMessagesLoadingActive(true); - WaitForRequestTimeOutThenHideLoadingFeedback().Forget(); - } + lastRequestTime = Time.realtimeSinceStartup; + View?.SetOldMessagesLoadingActive(true); + WaitForRequestTimeOutThenHideLoadingFeedback().Forget(); + } - private bool IsLoadingMessages() => - Time.realtimeSinceStartup - lastRequestTime < REQUEST_MESSAGES_TIME_OUT; + private bool IsLoadingMessages() => + Time.realtimeSinceStartup - lastRequestTime < REQUEST_MESSAGES_TIME_OUT; - private async UniTaskVoid WaitForRequestTimeOutThenHideLoadingFeedback() - { - lastRequestTime = Time.realtimeSinceStartup; + private async UniTaskVoid WaitForRequestTimeOutThenHideLoadingFeedback() + { + lastRequestTime = Time.realtimeSinceStartup; - await UniTask.WaitUntil(() => Time.realtimeSinceStartup - lastRequestTime > REQUEST_MESSAGES_TIME_OUT); + await UniTask.WaitUntil(() => Time.realtimeSinceStartup - lastRequestTime > REQUEST_MESSAGES_TIME_OUT); - View?.SetLoadingMessagesActive(false); - View?.SetOldMessagesLoadingActive(false); - } + View?.SetLoadingMessagesActive(false); + View?.SetOldMessagesLoadingActive(false); + } - private void HandleMessageBlockedBySpam(ChatMessage message) - { - chatHudController.SetChatMessage(new ChatEntryModel - { - timestamp = (ulong)DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), - bodyText = "You sent too many messages in a short period of time. Please wait and try again later.", - messageId = Guid.NewGuid().ToString(), - messageType = ChatMessage.Type.SYSTEM, - subType = ChatEntryModel.SubType.RECEIVED - }) - .Forget(); - } + private void HandleMessageBlockedBySpam(ChatMessage message) + { + chatHudController.SetChatMessage(new ChatEntryModel + { + timestamp = (ulong)DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), + bodyText = "You sent too many messages in a short period of time. Please wait and try again later.", + messageId = Guid.NewGuid().ToString(), + messageType = ChatMessage.Type.SYSTEM, + subType = ChatEntryModel.SubType.RECEIVED + }) + .Forget(); + } - private void ResetPagination() - { - oldestTimestamp = long.MaxValue; - oldestMessageId = null; - } + private void ResetPagination() + { + oldestTimestamp = long.MaxValue; + oldestMessageId = null; + } - private void Focus() - { - chatHudController.FocusInputField(); - MarkUserChatMessagesAsRead(); - } + private void Focus() + { + chatHudController.FocusInputField(); + MarkUserChatMessagesAsRead(); + } - private void SomeoneMentionedFromContextMenu(string mention, string _) - { - if (!View.IsActive) - return; + private void SomeoneMentionedFromContextMenu(string mention, string _) + { + if (!View.IsActive) + return; - View.ChatHUD.AddTextIntoInputField(mention); + View.ChatHUD.AddTextIntoInputField(mention); + } } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/PrivateChatWindowHUD.asmdef b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/PrivateChatWindowHUD.asmdef index 5753664cf1..e38e0acbed 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/PrivateChatWindowHUD.asmdef +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/PrivateChatWindowHUD.asmdef @@ -31,7 +31,8 @@ "GUID:8aa60ff897c74401cb96cdbc583fed0d", "GUID:55b66aa56b81d2d4cafb4a5f02bc90ca", "GUID:82873c2d9c9cbe94391e6b33e5153865", - "GUID:5cd5fb11f1b1d104586dec3f36722223" + "GUID:5cd5fb11f1b1d104586dec3f36722223", + "GUID:e5b8a8ed154ad624f99bcb73d3284a90" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/Tests/PrivateChatWindowControllerShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/Tests/PrivateChatWindowControllerShould.cs index a4173a55a5..627ccd1c51 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/Tests/PrivateChatWindowControllerShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/Tests/PrivateChatWindowControllerShould.cs @@ -1,7 +1,5 @@ using Cysharp.Threading.Tasks; -using DCL; using DCL.Interface; -using DCL.Social.Chat; using DCL.Social.Chat.Mentions; using DCL.Social.Friends; using NSubstitute; @@ -13,358 +11,362 @@ using System.Threading; using UnityEngine; -public class PrivateChatWindowControllerShould +namespace DCL.Social.Chat { - private const string BLOCKED_FRIEND_ID = "blocked-friend-id"; - private const string FRIEND_ID = "my-user-id-2"; - private const string FRIEND_NAME = "myFriendName"; - private const string OWN_USER_ID = "my-user-id"; - - private PrivateChatWindowController controller; - private IPrivateChatComponentView view; - private IChatHUDComponentView internalChatView; - private IUserProfileBridge userProfileBridge; - private ISocialAnalytics socialAnalytics; - private IChatController chatController; - private IFriendsController friendsController; - private IMouseCatcher mouseCatcher; - private DataStore dataStore; - private IChatMentionSuggestionProvider mentionSuggestionProvider; - - [SetUp] - public void SetUp() + public class PrivateChatWindowControllerShould { - view = Substitute.For(); - internalChatView = Substitute.For(); - socialAnalytics = Substitute.For(); - view.ChatHUD.Returns(internalChatView); - - userProfileBridge = Substitute.For(); - friendsController = Substitute.For(); - - GivenOwnProfile(); - GivenFriend(FRIEND_ID, FRIEND_NAME, PresenceStatus.ONLINE); - GivenFriend(BLOCKED_FRIEND_ID, "blockedFriendName", PresenceStatus.OFFLINE); - - chatController = Substitute.For(); - - mouseCatcher = Substitute.For(); - dataStore = new DataStore(); - dataStore.featureFlags.flags.Set(new FeatureFlag { flags = { ["chat_mentions_enabled"] = true } }); - mentionSuggestionProvider = Substitute.For(); - - controller = new PrivateChatWindowController( - dataStore, - userProfileBridge, - chatController, - friendsController, - socialAnalytics, - mouseCatcher, - mentionSuggestionProvider); - } + private const string BLOCKED_FRIEND_ID = "blocked-friend-id"; + private const string FRIEND_ID = "my-user-id-2"; + private const string FRIEND_NAME = "myFriendName"; + private const string OWN_USER_ID = "my-user-id"; + + private PrivateChatWindowController controller; + private IPrivateChatComponentView view; + private IChatHUDComponentView internalChatView; + private IUserProfileBridge userProfileBridge; + private ISocialAnalytics socialAnalytics; + private IChatController chatController; + private IFriendsController friendsController; + private IMouseCatcher mouseCatcher; + private DataStore dataStore; + private IChatMentionSuggestionProvider mentionSuggestionProvider; + + [SetUp] + public void SetUp() + { + view = Substitute.For(); + internalChatView = Substitute.For(); + socialAnalytics = Substitute.For(); + view.ChatHUD.Returns(internalChatView); + + userProfileBridge = Substitute.For(); + friendsController = Substitute.For(); + + GivenOwnProfile(); + GivenFriend(FRIEND_ID, FRIEND_NAME, PresenceStatus.ONLINE); + GivenFriend(BLOCKED_FRIEND_ID, "blockedFriendName", PresenceStatus.OFFLINE); + + chatController = Substitute.For(); + + mouseCatcher = Substitute.For(); + dataStore = new DataStore(); + dataStore.featureFlags.flags.Set(new FeatureFlag { flags = { ["chat_mentions_enabled"] = true } }); + mentionSuggestionProvider = Substitute.For(); + + controller = new PrivateChatWindowController( + dataStore, + userProfileBridge, + chatController, + friendsController, + socialAnalytics, + mouseCatcher, + mentionSuggestionProvider, + Substitute.For()); + } + + [TearDown] + public void TearDown() + { + controller.Dispose(); + } - [TearDown] - public void TearDown() - { - controller.Dispose(); - } + [Test] + public void ClearAllMessagesWhenInitialize() + { + WhenControllerInitializes(FRIEND_ID); - [Test] - public void ClearAllMessagesWhenInitialize() - { - WhenControllerInitializes(FRIEND_ID); + internalChatView.Received(1).ClearAllEntries(); + } - internalChatView.Received(1).ClearAllEntries(); - } + [Test] + public void ReceivesOneMessageProperly() + { + WhenControllerInitializes(FRIEND_ID); - [Test] - public void ReceivesOneMessageProperly() - { - WhenControllerInitializes(FRIEND_ID); + var msg1 = new ChatMessage(ChatMessage.Type.PRIVATE, FRIEND_ID, "message1"); + var msg2 = new ChatMessage(ChatMessage.Type.PRIVATE, FRIEND_ID, "message2"); + var msg3 = new ChatMessage(ChatMessage.Type.PRIVATE, FRIEND_ID, "message3"); - var msg1 = new ChatMessage(ChatMessage.Type.PRIVATE, FRIEND_ID, "message1"); - var msg2 = new ChatMessage(ChatMessage.Type.PRIVATE, FRIEND_ID, "message2"); - var msg3 = new ChatMessage(ChatMessage.Type.PRIVATE, FRIEND_ID, "message3"); + chatController.OnAddMessage += Raise.Event>(new[] { msg1 }); + chatController.OnAddMessage += Raise.Event>(new[] { msg2 }); + chatController.OnAddMessage += Raise.Event>(new[] { msg3 }); - chatController.OnAddMessage += Raise.Event>(new[] { msg1 }); - chatController.OnAddMessage += Raise.Event>(new[] { msg2 }); - chatController.OnAddMessage += Raise.Event>(new[] { msg3 }); + internalChatView.Received(3) + .SetEntry(Arg.Is(model => + model.messageType == ChatMessage.Type.PRIVATE + && model.senderId == FRIEND_ID)); + } - internalChatView.Received(3) - .SetEntry(Arg.Is(model => - model.messageType == ChatMessage.Type.PRIVATE - && model.senderId == FRIEND_ID)); - } + [Test] + public void SendChatMessageWhenViewTriggers() + { + WhenControllerInitializes(FRIEND_ID); - [Test] - public void SendChatMessageWhenViewTriggers() - { - WhenControllerInitializes(FRIEND_ID); + internalChatView.OnSendMessage += Raise.Event>(new ChatMessage { body = "test message" }); - internalChatView.OnSendMessage += Raise.Event>(new ChatMessage { body = "test message" }); + chatController.Received(1) + .Send(Arg.Is(message => + message.body == $"/w {FRIEND_NAME} test message" + && message.recipient == FRIEND_NAME)); + } - chatController.Received(1) - .Send(Arg.Is(message => - message.body == $"/w {FRIEND_NAME} test message" - && message.recipient == FRIEND_NAME)); - } + [Test] + public void CloseWhenCloseButtonIsPressed() + { + var isViewActive = false; + view.When(v => v.Show()).Do(info => isViewActive = true); + view.When(v => v.Hide()).Do(info => isViewActive = false); + view.IsActive.Returns(info => isViewActive); - [Test] - public void CloseWhenCloseButtonIsPressed() - { - var isViewActive = false; - view.When(v => v.Show()).Do(info => isViewActive = true); - view.When(v => v.Hide()).Do(info => isViewActive = false); - view.IsActive.Returns(info => isViewActive); + WhenControllerInitializes(FRIEND_ID); + controller.SetVisibility(true); + Assert.IsTrue(isViewActive); - WhenControllerInitializes(FRIEND_ID); - controller.SetVisibility(true); - Assert.IsTrue(isViewActive); + view.OnClose += Raise.Event(); + Assert.IsFalse(isViewActive); + } - view.OnClose += Raise.Event(); - Assert.IsFalse(isViewActive); - } + [Test] + public void TriggerBackWhenViewPressesBack() + { + WhenControllerInitializes(FRIEND_ID); - [Test] - public void TriggerBackWhenViewPressesBack() - { - WhenControllerInitializes(FRIEND_ID); + var eventCalled = false; + controller.OnBack += () => eventCalled = true; - var eventCalled = false; - controller.OnBack += () => eventCalled = true; + controller.SetVisibility(true); + view.OnPressBack += Raise.Event(); - controller.SetVisibility(true); - view.OnPressBack += Raise.Event(); + Assert.AreEqual(true, eventCalled); + } - Assert.AreEqual(true, eventCalled); - } + [Test] + public void SetupViewCorrectly() + { + WhenControllerInitializes(FRIEND_ID); + controller.SetVisibility(true); - [Test] - public void SetupViewCorrectly() - { - WhenControllerInitializes(FRIEND_ID); - controller.SetVisibility(true); + view.Received(1).Setup(Arg.Is(u => u.userId == FRIEND_ID), true, false); + } - view.Received(1).Setup(Arg.Is(u => u.userId == FRIEND_ID), true, false); - } + [Test] + public void SetUpViewAsBlocked() + { + WhenControllerInitializes(BLOCKED_FRIEND_ID); + controller.SetVisibility(true); - [Test] - public void SetUpViewAsBlocked() - { - WhenControllerInitializes(BLOCKED_FRIEND_ID); - controller.SetVisibility(true); + view.Received(1).Setup(Arg.Is(u => u.userId == BLOCKED_FRIEND_ID), false, true); + } - view.Received(1).Setup(Arg.Is(u => u.userId == BLOCKED_FRIEND_ID), false, true); - } + [Test] + public void AvoidReloadingChatsWhenIsTheSameUser() + { + WhenControllerInitializes(FRIEND_ID); + controller.SetVisibility(true); + controller.SetVisibility(false); + WhenControllerInitializes(FRIEND_ID); + controller.SetVisibility(true); - [Test] - public void AvoidReloadingChatsWhenIsTheSameUser() - { - WhenControllerInitializes(FRIEND_ID); - controller.SetVisibility(true); - controller.SetVisibility(false); - WhenControllerInitializes(FRIEND_ID); - controller.SetVisibility(true); + chatController.ReceivedWithAnyArgs(1).GetPrivateMessages(default, default, default); + } - chatController.ReceivedWithAnyArgs(1).GetPrivateMessages(default, default, default); - } + [Test] + public void Show() + { + var isViewActive = false; + view.When(v => v.Show()).Do(info => isViewActive = true); + view.When(v => v.Hide()).Do(info => isViewActive = false); + view.IsActive.Returns(info => isViewActive); + + WhenControllerInitializes(FRIEND_ID); + controller.SetVisibility(true); + + internalChatView.Received(1).FocusInputField(); + view.Received().Setup(Arg.Is(u => u.userId == FRIEND_ID), true, false); + view.Received(1).Show(); + Assert.IsTrue(isViewActive); + chatController.Received(1).MarkMessagesAsSeen(FRIEND_ID); + } + + [Test] + public void Hide() + { + var isViewActive = false; + view.When(v => v.Show()).Do(info => isViewActive = true); + view.When(v => v.Hide()).Do(info => isViewActive = false); + view.IsActive.Returns(info => isViewActive); + + WhenControllerInitializes(FRIEND_ID); + controller.SetVisibility(true); + controller.SetVisibility(false); + + internalChatView.Received(1).UnfocusInputField(); + view.Received(1).Hide(); + Assert.IsFalse(isViewActive); + } + + [Test] + public void HideViewWhenMouseIsLocked() + { + WhenControllerInitializes(FRIEND_ID); + controller.SetVisibility(true); + view.IsActive.Returns(true); - [Test] - public void Show() - { - var isViewActive = false; - view.When(v => v.Show()).Do(info => isViewActive = true); - view.When(v => v.Hide()).Do(info => isViewActive = false); - view.IsActive.Returns(info => isViewActive); - - WhenControllerInitializes(FRIEND_ID); - controller.SetVisibility(true); - - internalChatView.Received(1).FocusInputField(); - view.Received().Setup(Arg.Is(u => u.userId == FRIEND_ID), true, false); - view.Received(1).Show(); - Assert.IsTrue(isViewActive); - chatController.Received(1).MarkMessagesAsSeen(FRIEND_ID); - } + mouseCatcher.OnMouseLock += Raise.Event(); - [Test] - public void Hide() - { - var isViewActive = false; - view.When(v => v.Show()).Do(info => isViewActive = true); - view.When(v => v.Hide()).Do(info => isViewActive = false); - view.IsActive.Returns(info => isViewActive); - - WhenControllerInitializes(FRIEND_ID); - controller.SetVisibility(true); - controller.SetVisibility(false); - - internalChatView.Received(1).UnfocusInputField(); - view.Received(1).Hide(); - Assert.IsFalse(isViewActive); - } + view.Received(1).Hide(); + internalChatView.Received(1).UnfocusInputField(); + } - [Test] - public void HideViewWhenMouseIsLocked() - { - WhenControllerInitializes(FRIEND_ID); - controller.SetVisibility(true); - view.IsActive.Returns(true); + [Test] + public void ActivatePanel() + { + WhenControllerInitializes(FRIEND_ID); + controller.SetVisibility(true); - mouseCatcher.OnMouseLock += Raise.Event(); + view.Received(1).Show(); + } - view.Received(1).Hide(); - internalChatView.Received(1).UnfocusInputField(); - } + [Test] + public void RequestPrivateMessagesCorrectly() + { + controller.Initialize(view); + string userId = "testId"; + int limit = 30; + string testMessageId = "testId"; - [Test] - public void ActivatePanel() - { - WhenControllerInitializes(FRIEND_ID); - controller.SetVisibility(true); + controller.RequestPrivateMessages(userId, limit, testMessageId); - view.Received(1).Show(); - } + view.Received(1).SetLoadingMessagesActive(true); + chatController.Received(1).GetPrivateMessages(userId, limit, testMessageId); + } - [Test] - public void RequestPrivateMessagesCorrectly() - { - controller.Initialize(view); - string userId = "testId"; - int limit = 30; - string testMessageId = "testId"; + [Test] + public void RequestOldConversationsCorrectly() + { + WhenControllerInitializes(FRIEND_ID); - controller.RequestPrivateMessages(userId, limit, testMessageId); + controller.RequestOldConversations(); - view.Received(1).SetLoadingMessagesActive(true); - chatController.Received(1).GetPrivateMessages(userId, limit, testMessageId); - } + view.Received(1).SetOldMessagesLoadingActive(true); - [Test] - public void RequestOldConversationsCorrectly() - { - WhenControllerInitializes(FRIEND_ID); + chatController.Received(1) + .GetPrivateMessages( + FRIEND_ID, + PrivateChatWindowController.USER_PRIVATE_MESSAGES_TO_REQUEST_FOR_SHOW_MORE, + null); + } - controller.RequestOldConversations(); + [Test] + public void MarkAsSeenOnlyOnceWhenManyMessagesReceived() + { + WhenControllerInitializes(FRIEND_ID); + chatController.ClearReceivedCalls(); + view.IsActive.Returns(true); - view.Received(1).SetOldMessagesLoadingActive(true); + chatController.OnAddMessage += Raise.Event>(new[] + { + new ChatMessage( + "msg1", ChatMessage.Type.PRIVATE, FRIEND_ID, "hey", 100) + { + recipient = OWN_USER_ID + }, + new ChatMessage( + "msg2", ChatMessage.Type.PRIVATE, FRIEND_ID, "hey", 101) + { + recipient = OWN_USER_ID + } + }); + + chatController.Received(1).MarkMessagesAsSeen(FRIEND_ID); + } + + [Test] + [TestCase(true)] + [TestCase(false)] + public void CheckOwnPlayerMentionInDMsCorrectly(bool ownPlayerIsMentioned) + { + WhenControllerInitializes(FRIEND_ID); + dataStore.mentions.ownPlayerMentionedInDM.Set(null, false); - chatController.Received(1) - .GetPrivateMessages( - FRIEND_ID, - PrivateChatWindowController.USER_PRIVATE_MESSAGES_TO_REQUEST_FOR_SHOW_MORE, - null); - } + string testMessage = ownPlayerIsMentioned + ? $"Hi @{userProfileBridge.GetOwn().userName}" + : "test message"; - [Test] - public void MarkAsSeenOnlyOnceWhenManyMessagesReceived() - { - WhenControllerInitializes(FRIEND_ID); - chatController.ClearReceivedCalls(); - view.IsActive.Returns(true); + view.IsActive.Returns(false); - chatController.OnAddMessage += Raise.Event>(new[] - { - new ChatMessage( - "msg1", ChatMessage.Type.PRIVATE, FRIEND_ID, "hey", 100) - { - recipient = OWN_USER_ID - }, - new ChatMessage( - "msg2", ChatMessage.Type.PRIVATE, FRIEND_ID, "hey", 101) + var testMentionMessage = new ChatMessage { - recipient = OWN_USER_ID - } - }); - - chatController.Received(1).MarkMessagesAsSeen(FRIEND_ID); - } + messageType = ChatMessage.Type.PRIVATE, + body = testMessage, + sender = FRIEND_ID, + timestamp = 100, + }; - [Test] - [TestCase(true)] - [TestCase(false)] - public void CheckOwnPlayerMentionInDMsCorrectly(bool ownPlayerIsMentioned) - { - WhenControllerInitializes(FRIEND_ID); - dataStore.mentions.ownPlayerMentionedInDM.Set(null, false); - - string testMessage = ownPlayerIsMentioned - ? $"Hi @{userProfileBridge.GetOwn().userName}" - : "test message"; + chatController.OnAddMessage += Raise.Event>(new[] { testMentionMessage }); - view.IsActive.Returns(false); + Assert.AreEqual(ownPlayerIsMentioned ? FRIEND_ID : null, dataStore.mentions.ownPlayerMentionedInDM.Get()); + } - var testMentionMessage = new ChatMessage + [TestCase("@", "")] + [TestCase("hey @f", "f")] + [TestCase("im super @dude", "dude")] + public void SuggestNearbyUsers(string text, string name) { - messageType = ChatMessage.Type.PRIVATE, - body = testMessage, - sender = FRIEND_ID, - timestamp = 100, - }; - - chatController.OnAddMessage += Raise.Event>(new[] { testMentionMessage }); - - Assert.AreEqual(ownPlayerIsMentioned ? FRIEND_ID : null, dataStore.mentions.ownPlayerMentionedInDM.Get()); - } + WhenControllerInitializes(FRIEND_ID); + mentionSuggestionProvider.GetProfilesStartingWith(Arg.Any(), Arg.Any(), Arg.Any>(), Arg.Any()) + .Returns(UniTask.FromResult(new List())); - [TestCase("@", "")] - [TestCase("hey @f", "f")] - [TestCase("im super @dude", "dude")] - public void SuggestNearbyUsers(string text, string name) - { - WhenControllerInitializes(FRIEND_ID); - mentionSuggestionProvider.GetProfilesStartingWith(Arg.Any(), Arg.Any(), Arg.Any>(), Arg.Any()) - .Returns(UniTask.FromResult(new List())); - - internalChatView.OnMessageUpdated += Raise.Event>(text, 1); - - mentionSuggestionProvider.Received(1) - .GetProfilesStartingWith(name, 5, Arg.Is>(profiles => - profiles.First().userId == OWN_USER_ID - && profiles.Last().userId == FRIEND_ID - && profiles.Count() == 2), Arg.Any()); - } + internalChatView.OnMessageUpdated += Raise.Event>(text, 1); - private void WhenControllerInitializes(string friendId) - { - controller.Initialize(view); - controller.Setup(friendId); - } + mentionSuggestionProvider.Received(1) + .GetProfilesStartingWith(name, 5, Arg.Is>(profiles => + profiles.First().userId == OWN_USER_ID + && profiles.Last().userId == FRIEND_ID + && profiles.Count() == 2), Arg.Any()); + } - private void GivenOwnProfile() - { - var ownProfileModel = new UserProfileModel + private void WhenControllerInitializes(string friendId) { - userId = OWN_USER_ID, - name = "NO_USER", - blocked = new List { BLOCKED_FRIEND_ID } - }; + controller.Initialize(view); + controller.Setup(friendId); + } - var ownUserProfile = ScriptableObject.CreateInstance(); - ownUserProfile.UpdateData(ownProfileModel); + private void GivenOwnProfile() + { + var ownProfileModel = new UserProfileModel + { + userId = OWN_USER_ID, + name = "NO_USER", + blocked = new List { BLOCKED_FRIEND_ID } + }; - userProfileBridge = Substitute.For(); - userProfileBridge.GetOwn().Returns(ownUserProfile); - userProfileBridge.Get(ownProfileModel.userId).Returns(ownUserProfile); - } + var ownUserProfile = ScriptableObject.CreateInstance(); + ownUserProfile.UpdateData(ownProfileModel); - private void GivenFriend(string friendId, string name, PresenceStatus presence) - { - var testUserProfile = ScriptableObject.CreateInstance(); + userProfileBridge = Substitute.For(); + userProfileBridge.GetOwn().Returns(ownUserProfile); + userProfileBridge.Get(ownProfileModel.userId).Returns(ownUserProfile); + } - testUserProfile.UpdateData(new UserProfileModel + private void GivenFriend(string friendId, string name, PresenceStatus presence) { - userId = friendId, - name = name - }); - - userProfileBridge.Get(friendId).Returns(testUserProfile); - - friendsController.GetUserStatus(testUserProfile.userId) - .Returns(new UserStatus - { - presence = presence, - friendshipStatus = FriendshipStatus.FRIEND, - }); + var testUserProfile = ScriptableObject.CreateInstance(); + + testUserProfile.UpdateData(new UserProfileModel + { + userId = friendId, + name = name + }); + + userProfileBridge.Get(friendId).Returns(testUserProfile); + + friendsController.GetUserStatus(testUserProfile.userId) + .Returns(new UserStatus + { + presence = presence, + friendshipStatus = FriendshipStatus.FRIEND, + }); + } } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/Tests/PrivateChatWindowHUDTests.asmdef b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/Tests/PrivateChatWindowHUDTests.asmdef index dbc29216b2..49dd9753de 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/Tests/PrivateChatWindowHUDTests.asmdef +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/PrivateChatWindow/Tests/PrivateChatWindowHUDTests.asmdef @@ -32,7 +32,8 @@ "GUID:81f3218b29e049144b175dad2ebbac1b", "GUID:1e6b57fe78f7b724e9567f29f6a40c2c", "GUID:2995626b54c60644988f134a69a77450", - "GUID:f51ebe6a0ceec4240a699833d6309b23" + "GUID:f51ebe6a0ceec4240a699833d6309b23", + "GUID:e5b8a8ed154ad624f99bcb73d3284a90" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Addressables/ChatChannelHUD.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Addressables/ChatChannelHUD.prefab index f5b6510402..aba52006c0 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Addressables/ChatChannelHUD.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Addressables/ChatChannelHUD.prefab @@ -2428,7 +2428,7 @@ PrefabInstance: - target: {fileID: 3666262549960565997, guid: bac007ac4ef98284c8cf05867a35ee0f, type: 3} propertyPath: m_IsActive - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 4755746969343816562, guid: bac007ac4ef98284c8cf05867a35ee0f, type: 3} @@ -2459,7 +2459,7 @@ PrefabInstance: - target: {fileID: 5216665749222970468, guid: bac007ac4ef98284c8cf05867a35ee0f, type: 3} propertyPath: m_IsActive - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5599680012397558907, guid: bac007ac4ef98284c8cf05867a35ee0f, type: 3} @@ -2609,7 +2609,7 @@ PrefabInstance: - target: {fileID: 8297576681798935997, guid: bac007ac4ef98284c8cf05867a35ee0f, type: 3} propertyPath: m_IsActive - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 8865446388248603219, guid: bac007ac4ef98284c8cf05867a35ee0f, type: 3} @@ -2774,7 +2774,7 @@ PrefabInstance: - target: {fileID: 439758649979947888, guid: 28988f9d309d15a4d8e70851f8671279, type: 3} propertyPath: m_IsActive - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 510474962384184233, guid: 28988f9d309d15a4d8e70851f8671279, type: 3} @@ -3174,7 +3174,7 @@ PrefabInstance: - target: {fileID: 4420826133141174953, guid: 28988f9d309d15a4d8e70851f8671279, type: 3} propertyPath: m_IsActive - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 4532193810263743842, guid: 28988f9d309d15a4d8e70851f8671279, type: 3} @@ -3209,7 +3209,7 @@ PrefabInstance: - target: {fileID: 5178456170749413920, guid: 28988f9d309d15a4d8e70851f8671279, type: 3} propertyPath: m_IsActive - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5239503401355176004, guid: 28988f9d309d15a4d8e70851f8671279, type: 3} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/TaskbarHUD/TaskbarHUDController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/TaskbarHUD/TaskbarHUDController.cs index d4c36d106c..1734566d74 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/TaskbarHUD/TaskbarHUDController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/TaskbarHUD/TaskbarHUDController.cs @@ -1,10 +1,11 @@ using Cysharp.Threading.Tasks; using DCL; using DCL.Chat; -using DCL.Chat.HUD; +using DCL.Social.Chat; using DCL.Interface; using DCL.Social.Friends; using Analytics; +using DCL.Social.Chat; using System; using System.Threading; using TMPro; diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/TaskbarHUD/Tests/TaskbarHUDShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/TaskbarHUD/Tests/TaskbarHUDShould.cs index 87272315d0..3c237ace7c 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/TaskbarHUD/Tests/TaskbarHUDShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/TaskbarHUD/Tests/TaskbarHUDShould.cs @@ -2,9 +2,8 @@ using DCL.Browser; using DCL.Chat; using DCL.Chat.Channels; -using DCL.Chat.HUD; -using DCL.ProfanityFiltering; using DCL.Social.Chat; +using DCL.ProfanityFiltering; using DCL.Social.Chat.Mentions; using DCL.Social.Friends; using NSubstitute; @@ -165,7 +164,8 @@ IPrivateChatComponentView GivenView() friendsController, socialAnalytics, Substitute.For(), - Substitute.For()); + Substitute.For(), + Substitute.For()); controller.Initialize(GivenView()); @@ -226,7 +226,8 @@ IPublicChatWindowView GivenView() new RegexProfanityFilter(Substitute.For()), Substitute.For(), Substitute.For(), - Substitute.For()); + Substitute.For(), + Substitute.For()); controller.Initialize(GivenView()); @@ -302,7 +303,8 @@ IChatChannelWindowView GivenView() Substitute.For(), socialAnalytics, new RegexProfanityFilter(Substitute.For()), - Substitute.For()); + Substitute.For(), + Substitute.For()); controller.Initialize(GivenView()); diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/TaskbarHUD/Tests/TaskbarHUDTests.asmdef b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/TaskbarHUD/Tests/TaskbarHUDTests.asmdef index 2d7e06ba6b..fa75499fd1 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/TaskbarHUD/Tests/TaskbarHUDTests.asmdef +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/TaskbarHUD/Tests/TaskbarHUDTests.asmdef @@ -37,7 +37,8 @@ "GUID:55b66aa56b81d2d4cafb4a5f02bc90ca", "GUID:6afcac5154f98e846bbd9f27e454b57a", "GUID:4d7712e4b2446440a8af21fd3ce8690e", - "GUID:692cda4908a474bb994c2c8c1090b04e" + "GUID:692cda4908a474bb994c2c8c1090b04e", + "GUID:e5b8a8ed154ad624f99bcb73d3284a90" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelContextualMenu.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelContextualMenu.cs index 8b697a7968..6d348f6382 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelContextualMenu.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelContextualMenu.cs @@ -3,7 +3,7 @@ using UnityEngine; using UnityEngine.UI; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChannelContextualMenu : BaseComponentView { @@ -23,15 +23,15 @@ internal enum Options public override void Awake() { base.Awake(); - + leaveButton.onClick.AddListener(() => { OnLeave?.Invoke(); Hide(); }); - + closeButton.onClick.AddListener(() => Hide()); - + RefreshControl(); } @@ -57,4 +57,4 @@ public void SetHeaderTitle(string title) headerTiler.text = title; } } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelEntryFactory.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelEntryFactory.cs index e756efc7cf..758622595b 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelEntryFactory.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelEntryFactory.cs @@ -1,9 +1,10 @@ +using DCL.Social.Chat; using System; using System.Collections.Generic; using System.Linq; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { [CreateAssetMenu(fileName = "ChannelEntryFactory", menuName = "DCL/Social/ChannelEntryFactory")] public class ChannelEntryFactory : ScriptableObject @@ -14,7 +15,7 @@ private struct SpecialEntry public string channelId; public PublicChatEntry prefab; } - + [SerializeField] private PublicChatEntry defaultEntryPrefab; [SerializeField] private SpecialEntry[] specialEntryPrefabs; @@ -26,4 +27,4 @@ public PublicChatEntry Create(string channelId) return Instantiate(specialEntries.ContainsKey(channelId) ? specialEntries[channelId] : defaultEntryPrefab); } } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelJoinErrorWindowComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelJoinErrorWindowComponentView.cs index a4fa844717..a1d7885a0b 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelJoinErrorWindowComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelJoinErrorWindowComponentView.cs @@ -1,8 +1,9 @@ +using DCL.Social.Chat; using System; using TMPro; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChannelJoinErrorWindowComponentView : BaseComponentView, IChannelJoinErrorWindowView { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelJoinErrorWindowController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelJoinErrorWindowController.cs index ad2b7af59b..0c0a36cfb5 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelJoinErrorWindowController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelJoinErrorWindowController.cs @@ -1,6 +1,7 @@ +using DCL.Social.Chat; using System; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChannelJoinErrorWindowController : IDisposable { @@ -43,11 +44,11 @@ private void Show(string currentChannelId, string previousChannelId) } private void Close() => view.Hide(); - + private void Retry() { chatController.JoinOrCreateChannel(currentChannelId); Close(); } } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelJoinErrorWindowPlugin.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelJoinErrorWindowPlugin.cs index 4f1963f779..aa9ebb292b 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelJoinErrorWindowPlugin.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelJoinErrorWindowPlugin.cs @@ -1,7 +1,8 @@ +using DCL.Social.Chat; using DCL.Providers; using System.Threading; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChannelJoinErrorWindowPlugin : IPlugin { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLeaveErrorWindowComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLeaveErrorWindowComponentView.cs index ca08bf5244..af258bba6a 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLeaveErrorWindowComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLeaveErrorWindowComponentView.cs @@ -1,8 +1,9 @@ +using DCL.Social.Chat; using System; using TMPro; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChannelLeaveErrorWindowComponentView : BaseComponentView, IChannelLeaveErrorWindowView { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLeaveErrorWindowController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLeaveErrorWindowController.cs index 40d2c5c508..7415501bad 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLeaveErrorWindowController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLeaveErrorWindowController.cs @@ -1,4 +1,6 @@ -namespace DCL.Chat.HUD +using DCL.Social.Chat; + +namespace DCL.Social.Chat { public class ChannelLeaveErrorWindowController { @@ -41,11 +43,11 @@ private void Show(string currentChannelId, string previousChannelId) } private void Close() => view.Hide(); - + private void Retry() { chatController.LeaveChannel(currentChannelId); Close(); } } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLeaveErrorWindowPlugin.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLeaveErrorWindowPlugin.cs index 1280af7cb8..48b9244992 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLeaveErrorWindowPlugin.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLeaveErrorWindowPlugin.cs @@ -1,7 +1,8 @@ +using DCL.Social.Chat; using DCL.Providers; using System.Threading; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChannelLeaveErrorWindowPlugin : IPlugin { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLimitReachedWindowComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLimitReachedWindowComponentView.cs index dd9887eefe..7ffb6e7f7c 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLimitReachedWindowComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLimitReachedWindowComponentView.cs @@ -1,7 +1,8 @@ +using DCL.Social.Chat; using System; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChannelLimitReachedWindowComponentView : BaseComponentView, IChannelLimitReachedWindowView { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLimitReachedWindowController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLimitReachedWindowController.cs index bd1a57dc77..e28b4b879b 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLimitReachedWindowController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLimitReachedWindowController.cs @@ -1,6 +1,7 @@ +using DCL.Social.Chat; using System; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChannelLimitReachedWindowController : IDisposable { @@ -36,4 +37,4 @@ private void Show(string currentChannelId, string previousChannelId) private void Close() => view.Hide(); } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLimitReachedWindowPlugin.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLimitReachedWindowPlugin.cs index a0cc5fcaef..390b2dfb4c 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLimitReachedWindowPlugin.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLimitReachedWindowPlugin.cs @@ -1,7 +1,8 @@ +using DCL.Social.Chat; using DCL.Providers; using System.Threading; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChannelLimitReachedWindowPlugin : IPlugin { @@ -13,7 +14,7 @@ public ChannelLimitReachedWindowPlugin() { Initialize(cts.Token); } - + private async void Initialize(CancellationToken ct) { var view = await Environment.i.serviceLocator.Get() diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLinkDetector.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLinkDetector.cs index 6a22710d31..04f4d02182 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLinkDetector.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelLinkDetector.cs @@ -1,4 +1,5 @@ using Cysharp.Threading.Tasks; +using DCL.Chat; using DCL.Chat.Channels; using System.Collections; using System.Collections.Generic; @@ -7,7 +8,7 @@ using UnityEngine; using UnityEngine.EventSystems; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChannelLinkDetector : MonoBehaviour, IPointerClickHandler { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelMemberEntry.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelMemberEntry.cs index f357baa121..e0bf58907f 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelMemberEntry.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelMemberEntry.cs @@ -1,8 +1,9 @@ +using DCL.Social.Chat; using TMPro; using UnityEngine; using UnityEngine.UI; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChannelMemberEntry : BaseComponentView, IComponentModelConfig { @@ -108,4 +109,4 @@ private void Dock(UserContextMenu userContextMenu) menuTransform.position = userContextMenuPositionReference.position; } } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelMemberEntryModel.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelMemberEntryModel.cs index 38b72bbe47..dcf10a856b 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelMemberEntryModel.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelMemberEntryModel.cs @@ -1,6 +1,6 @@ using System; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { [Serializable] public class ChannelMemberEntryModel : BaseComponentModel @@ -11,4 +11,4 @@ public class ChannelMemberEntryModel : BaseComponentModel public bool isOnline; public bool isOptionsButtonHidden; } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelMembersComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelMembersComponentView.cs index c20875957f..87c0689f7d 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelMembersComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelMembersComponentView.cs @@ -1,3 +1,4 @@ +using DCL.Social.Chat; using System; using System.Collections; using System.Collections.Generic; @@ -6,7 +7,7 @@ using UnityEngine; using UnityEngine.UI; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChannelMembersComponentView : BaseComponentView, IChannelMembersComponentView { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelMembersHUDController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelMembersHUDController.cs index 8b96fde409..66cbd602ab 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelMembersHUDController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelMembersHUDController.cs @@ -2,24 +2,28 @@ using System.Threading; using Cysharp.Threading.Tasks; using DCL.Chat.Channels; +using DCL.Social.Chat; using DCL.Tasks; using System.Collections.Generic; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChannelMembersHUDController : IDisposable { private const int LOAD_TIMEOUT = 2; private const int LOAD_PAGE_SIZE = 30; private const int MINUTES_FOR_AUTOMATIC_RELOADING = 1; + private readonly IChatController chatController; private readonly IUserProfileBridge userProfileBridge; private readonly DataStore_Channels dataStoreChannels; - private IChannelMembersComponentView view; + private readonly IChannelMembersComponentView view; + private readonly CancellationTokenSource showMembersCancellationToken = new (); + internal DateTime loadStartedTimestamp = DateTime.MinValue; - private CancellationTokenSource loadingCancellationToken = new CancellationTokenSource(); - private CancellationTokenSource reloadingCancellationToken = new CancellationTokenSource(); - private CancellationTokenSource showMembersCancellationToken = new (); + + private CancellationTokenSource loadingCancellationToken = new (); + private CancellationTokenSource reloadingCancellationToken = new (); private string currentChannelId; private int lastLimitRequested; private bool isSearching; diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChatChannelComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChatChannelComponentView.cs index 16e7912452..1b94902510 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChatChannelComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChatChannelComponentView.cs @@ -6,7 +6,7 @@ using UnityEngine.EventSystems; using UnityEngine.UI; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChatChannelComponentView : BaseComponentView, IChatChannelWindowView, IComponentModelConfig, IPointerDownHandler diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChatChannelHUDController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChatChannelHUDController.cs index 066dff904f..575e63a495 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChatChannelHUDController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChatChannelHUDController.cs @@ -2,15 +2,15 @@ using System.Collections.Generic; using System.Threading; using Cysharp.Threading.Tasks; +using DCL.Social.Chat; using DCL.Interface; using DCL.ProfanityFiltering; -using DCL.Social.Chat; using DCL.Social.Chat.Mentions; using SocialFeaturesAnalytics; using UnityEngine; using Channel = DCL.Chat.Channels.Channel; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChatChannelHUDController : IHUD { @@ -28,6 +28,7 @@ public class ChatChannelHUDController : IHUD private readonly ISocialAnalytics socialAnalytics; private readonly IProfanityFilter profanityFilter; private readonly IChatMentionSuggestionProvider chatMentionSuggestionProvider; + private readonly IClipboard clipboard; private ChatHUDController chatHudController; private ChannelMembersHUDController channelMembersHUDController; private CancellationTokenSource hideLoadingCancellationToken = new (); @@ -49,7 +50,8 @@ public ChatChannelHUDController(DataStore dataStore, IMouseCatcher mouseCatcher, ISocialAnalytics socialAnalytics, IProfanityFilter profanityFilter, - IChatMentionSuggestionProvider chatMentionSuggestionProvider) + IChatMentionSuggestionProvider chatMentionSuggestionProvider, + IClipboard clipboard) { this.dataStore = dataStore; this.userProfileBridge = userProfileBridge; @@ -58,6 +60,7 @@ public ChatChannelHUDController(DataStore dataStore, this.socialAnalytics = socialAnalytics; this.profanityFilter = profanityFilter; this.chatMentionSuggestionProvider = chatMentionSuggestionProvider; + this.clipboard = clipboard; } public void Initialize(IChatChannelWindowView view, bool isVisible = true) @@ -72,11 +75,12 @@ public void Initialize(IChatChannelWindowView view, bool isVisible = true) view.OnShowMembersList += ShowMembersList; view.OnHideMembersList += HideMembersList; view.OnMuteChanged += MuteChannel; + dataStore.mentions.someoneMentionedFromContextMenu.OnChange += SomeoneMentionedFromContextMenu; chatHudController = new ChatHUDController(dataStore, userProfileBridge, false, (name, count, ct) => chatMentionSuggestionProvider.GetProfilesFromChatChannelsStartingWith(name, channelId, count, ct), - socialAnalytics, chatController, profanityFilter); + socialAnalytics, chatController, clipboard, profanityFilter); chatHudController.Initialize(view.ChatHUD); chatHudController.SortingStrategy = new ChatEntrySortingByTimestamp(); diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/CollapsableChannelMemberListComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/CollapsableChannelMemberListComponentView.cs index db975c9ccc..6622fe4993 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/CollapsableChannelMemberListComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/CollapsableChannelMemberListComponentView.cs @@ -1,7 +1,8 @@ using System.Collections.Generic; using System.Text.RegularExpressions; using DCL; -using DCL.Chat.HUD; +using DCL.Social.Chat; +using DCL.Social.Chat; using UIComponents.CollapsableSortedList; using UnityEngine; @@ -70,4 +71,4 @@ private Pool GetEntryPool() return entryPool; } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/CollapsableChatSearchListComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/CollapsableChatSearchListComponentView.cs index c2790dd9bd..bec689fca3 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/CollapsableChatSearchListComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/CollapsableChatSearchListComponentView.cs @@ -1,8 +1,9 @@ +using DCL.Social.Chat; using System; using UIComponents.CollapsableSortedList; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class CollapsableChatSearchListComponentView : CollapsableSortedListComponentView { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/CollapsableDirectChatListComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/CollapsableDirectChatListComponentView.cs index 7551e83a21..1c6094b3e4 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/CollapsableDirectChatListComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/CollapsableDirectChatListComponentView.cs @@ -1,118 +1,120 @@ using System; using System.Collections.Generic; using System.Text.RegularExpressions; -using DCL; -using DCL.Chat.HUD; +using DCL.Social.Chat; using UIComponents.CollapsableSortedList; using UnityEngine; -public class CollapsableDirectChatListComponentView : CollapsableSortedListComponentView +namespace DCL.Social.Chat { - private const string POOL_NAME_PREFIX = "DirectChatEntriesPool_"; + public class CollapsableDirectChatListComponentView : CollapsableSortedListComponentView + { + private const string POOL_NAME_PREFIX = "DirectChatEntriesPool_"; - [SerializeField] private PrivateChatEntry entryPrefab; - [SerializeField] private UserContextMenu userContextMenu; + [SerializeField] private PrivateChatEntry entryPrefab; + [SerializeField] private UserContextMenu userContextMenu; - private readonly Dictionary pooleableEntries = new Dictionary(); - private Pool entryPool; - private IChatController chatController; - private bool releaseEntriesFromPool = true; - private DataStore_Mentions mentionsDataStore; + private readonly Dictionary pooleableEntries = new Dictionary(); + private Pool entryPool; + private IChatController chatController; + private bool releaseEntriesFromPool = true; + private DataStore_Mentions mentionsDataStore; - public event Action OnOpenChat; - public event Action OnUnfriend - { - add => userContextMenu.OnUnfriend += value; - remove => userContextMenu.OnUnfriend -= value; - } - - public void Initialize( - IChatController chatController, - DataStore_Mentions mentionsDataStore) - { - this.chatController = chatController; - this.mentionsDataStore = mentionsDataStore; - } + public event Action OnOpenChat; + public event Action OnUnfriend + { + add => userContextMenu.OnUnfriend += value; + remove => userContextMenu.OnUnfriend -= value; + } - public void Filter(string search) - { - if (!gameObject.activeInHierarchy) return; - var regex = new Regex(search, RegexOptions.IgnoreCase); - Filter(entry => regex.IsMatch(entry.Model.userName)); - // throttling may intruduce race conditions & artifacts into the ui - // StartCoroutine(FilterAsync(entry => regex.IsMatch(entry.Model.userName))); - } + public void Initialize( + IChatController chatController, + DataStore_Mentions mentionsDataStore) + { + this.chatController = chatController; + this.mentionsDataStore = mentionsDataStore; + } - public void Clear(bool releaseEntriesFromPool) - { - // avoids releasing instances from pool just for this clear - this.releaseEntriesFromPool = releaseEntriesFromPool; - base.Clear(); - this.releaseEntriesFromPool = true; - pooleableEntries.Clear(); - } + public void Filter(string search) + { + if (!gameObject.activeInHierarchy) return; + var regex = new Regex(search, RegexOptions.IgnoreCase); + Filter(entry => regex.IsMatch(entry.Model.userName)); + // throttling may intruduce race conditions & artifacts into the ui + // StartCoroutine(FilterAsync(entry => regex.IsMatch(entry.Model.userName))); + } - public override PrivateChatEntry Remove(string key) - { - if (releaseEntriesFromPool) + public void Clear(bool releaseEntriesFromPool) { - if (pooleableEntries.ContainsKey(key)) - pooleableEntries[key].Release(); - pooleableEntries.Remove(key); + // avoids releasing instances from pool just for this clear + this.releaseEntriesFromPool = releaseEntriesFromPool; + base.Clear(); + this.releaseEntriesFromPool = true; + pooleableEntries.Clear(); } - return base.Remove(key); - } + public override PrivateChatEntry Remove(string key) + { + if (releaseEntriesFromPool) + { + if (pooleableEntries.ContainsKey(key)) + pooleableEntries[key].Release(); + pooleableEntries.Remove(key); + } + + return base.Remove(key); + } - public void Set(string userId, PrivateChatEntryModel entryModel) - { - if (!Contains(entryModel.userId)) - CreateEntry(userId); + public void Set(string userId, PrivateChatEntryModel entryModel) + { + if (!Contains(entryModel.userId)) + CreateEntry(userId); - var entry = Get(userId); - entry.Configure(entryModel); - } + var entry = Get(userId); + entry.Configure(entryModel); + } - public void RefreshBlockedEntries(List blockedUsers) - { - foreach (var pair in Entries) + public void RefreshBlockedEntries(List blockedUsers) { - pair.Value.SetBlockStatus(blockedUsers.Contains(pair.Key)); + foreach (var pair in Entries) + { + pair.Value.SetBlockStatus(blockedUsers.Contains(pair.Key)); + } } - } - public void RefreshPresence(string userId, bool isOnline) - { - if (Entries.TryGetValue(userId, out PrivateChatEntry directMessage)) - directMessage.SetPresence(isOnline); - } + public void RefreshPresence(string userId, bool isOnline) + { + if (Entries.TryGetValue(userId, out PrivateChatEntry directMessage)) + directMessage.SetPresence(isOnline); + } - private void CreateEntry(string userId) - { - entryPool = GetEntryPool(); - var newFriendEntry = entryPool.Get(); - pooleableEntries.Add(userId, newFriendEntry); - var entry = newFriendEntry.gameObject.GetComponent(); - Add(userId, entry); - entry.Initialize(chatController, userContextMenu, mentionsDataStore); - entry.OnOpenChat -= OnEntryOpenChat; - entry.OnOpenChat += OnEntryOpenChat; - } + private void CreateEntry(string userId) + { + entryPool = GetEntryPool(); + var newFriendEntry = entryPool.Get(); + pooleableEntries.Add(userId, newFriendEntry); + var entry = newFriendEntry.gameObject.GetComponent(); + Add(userId, entry); + entry.Initialize(chatController, userContextMenu, mentionsDataStore); + entry.OnOpenChat -= OnEntryOpenChat; + entry.OnOpenChat += OnEntryOpenChat; + } - private void OnEntryOpenChat(PrivateChatEntry entry) { OnOpenChat?.Invoke(entry); } + private void OnEntryOpenChat(PrivateChatEntry entry) { OnOpenChat?.Invoke(entry); } - private Pool GetEntryPool() - { - var entryPool = PoolManager.i.GetPool(POOL_NAME_PREFIX + name + GetInstanceID()); - if (entryPool != null) return entryPool; + private Pool GetEntryPool() + { + var entryPool = PoolManager.i.GetPool(POOL_NAME_PREFIX + name + GetInstanceID()); + if (entryPool != null) return entryPool; - entryPool = PoolManager.i.AddPool( - POOL_NAME_PREFIX + name + GetInstanceID(), - Instantiate(entryPrefab).gameObject, - maxPrewarmCount: 20, - isPersistent: true); - entryPool.ForcePrewarm(); + entryPool = PoolManager.i.AddPool( + POOL_NAME_PREFIX + name + GetInstanceID(), + Instantiate(entryPrefab).gameObject, + maxPrewarmCount: 20, + isPersistent: true); + entryPool.ForcePrewarm(); - return entryPool; + return entryPool; + } } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/CollapsablePublicChannelListComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/CollapsablePublicChannelListComponentView.cs index 8a7027f53c..fe80abef18 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/CollapsablePublicChannelListComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/CollapsablePublicChannelListComponentView.cs @@ -1,7 +1,8 @@ using DCL; using System; using System.Text.RegularExpressions; -using DCL.Chat.HUD; +using DCL.Social.Chat; +using DCL.Social.Chat; using UIComponents.CollapsableSortedList; using UnityEngine; diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/CreateChannelWindowComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/CreateChannelWindowComponentView.cs index 48dc89a590..776e27d20d 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/CreateChannelWindowComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/CreateChannelWindowComponentView.cs @@ -1,9 +1,10 @@ +using DCL.Social.Chat; using System; using TMPro; using UnityEngine; using UnityEngine.UI; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class CreateChannelWindowComponentView : BaseComponentView, ICreateChannelWindowView { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/CreateChannelWindowController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/CreateChannelWindowController.cs index cbf14b06bd..62d8c74e9d 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/CreateChannelWindowController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/CreateChannelWindowController.cs @@ -1,8 +1,9 @@ using System; using System.Text.RegularExpressions; using DCL.Chat.Channels; +using DCL.Social.Chat; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class CreateChannelWindowController : IHUD { @@ -140,4 +141,4 @@ private void HandleCreationError(string channelId, ChannelErrorCode errorCode) } } } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IChannelJoinErrorWindowView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IChannelJoinErrorWindowView.cs index 472079f11f..a2a71a8329 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IChannelJoinErrorWindowView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IChannelJoinErrorWindowView.cs @@ -1,6 +1,6 @@ using System; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public interface IChannelJoinErrorWindowView { @@ -10,4 +10,4 @@ public interface IChannelJoinErrorWindowView void Show(string channelName); void Hide(); } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IChannelLeaveErrorWindowView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IChannelLeaveErrorWindowView.cs index 618f517b6a..995dfdd6f3 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IChannelLeaveErrorWindowView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IChannelLeaveErrorWindowView.cs @@ -1,6 +1,6 @@ using System; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public interface IChannelLeaveErrorWindowView { @@ -10,4 +10,4 @@ public interface IChannelLeaveErrorWindowView void Show(string channelName); void Hide(); } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IChannelLimitReachedWindowView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IChannelLimitReachedWindowView.cs index 8c54ec6de5..c1e2ac9627 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IChannelLimitReachedWindowView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IChannelLimitReachedWindowView.cs @@ -1,7 +1,7 @@ using System; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public interface IChannelLimitReachedWindowView { @@ -10,4 +10,4 @@ public interface IChannelLimitReachedWindowView void Show(); void Hide(); } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IChannelMembersComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IChannelMembersComponentView.cs index 804d2cbf06..ab80f0c901 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IChannelMembersComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IChannelMembersComponentView.cs @@ -1,7 +1,8 @@ +using DCL.Social.Chat; using System; using System.Collections.Generic; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public interface IChannelMembersComponentView { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IChatChannelWindowView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IChatChannelWindowView.cs index 5a6599b5fe..020389e106 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IChatChannelWindowView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IChatChannelWindowView.cs @@ -2,7 +2,7 @@ using System; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public interface IChatChannelWindowView { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ICreateChannelWindowView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ICreateChannelWindowView.cs index 7ec8e88524..fb61a71e03 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ICreateChannelWindowView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ICreateChannelWindowView.cs @@ -1,7 +1,7 @@ using System; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public interface ICreateChannelWindowView { @@ -24,4 +24,4 @@ public interface ICreateChannelWindowView void ShowChannelsExceededError(); void ShowUnknownError(); } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ILeaveChannelConfirmationWindowComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ILeaveChannelConfirmationWindowComponentView.cs index 13f4a772c2..cfc4cec150 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ILeaveChannelConfirmationWindowComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ILeaveChannelConfirmationWindowComponentView.cs @@ -1,7 +1,7 @@ using System; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public interface ILeaveChannelConfirmationWindowComponentView { @@ -14,4 +14,4 @@ public interface ILeaveChannelConfirmationWindowComponentView void Show(bool instant = false); void Hide(bool instant = false); } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IPromoteChannelsToastComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IPromoteChannelsToastComponentView.cs index 6d0dd129af..fedd0779d5 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IPromoteChannelsToastComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IPromoteChannelsToastComponentView.cs @@ -1,6 +1,6 @@ using System; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public interface IPromoteChannelsToastComponentView { @@ -9,4 +9,4 @@ public interface IPromoteChannelsToastComponentView void Hide(); void Dispose(); } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IPublicChatWindowView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IPublicChatWindowView.cs index ca430c7d6c..2754c710f5 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IPublicChatWindowView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IPublicChatWindowView.cs @@ -1,23 +1,25 @@ -using DCL.Chat.HUD; using DCL.Social.Chat; using System; using UnityEngine; -public interface IPublicChatWindowView +namespace DCL.Social.Chat { - event Action OnClose; - event Action OnBack; - event Action OnMuteChanged; - event Action OnShowMembersList; - event Action OnHideMembersList; - event Action OnGoToCrowd; - bool IsActive { get; } - IChatHUDComponentView ChatHUD { get; } - RectTransform Transform { get; } - IChannelMembersComponentView ChannelMembersHUD { get; } - void Dispose(); - void Hide(); - void Show(); - void Configure(PublicChatModel model); - void UpdateMembersCount(int membersAmount); + public interface IPublicChatWindowView + { + event Action OnClose; + event Action OnBack; + event Action OnMuteChanged; + event Action OnShowMembersList; + event Action OnHideMembersList; + event Action OnGoToCrowd; + bool IsActive { get; } + IChatHUDComponentView ChatHUD { get; } + RectTransform Transform { get; } + IChannelMembersComponentView ChannelMembersHUD { get; } + void Dispose(); + void Hide(); + void Show(); + void Configure(PublicChatModel model); + void UpdateMembersCount(int membersAmount); + } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ISearchChannelsWindowView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ISearchChannelsWindowView.cs index 1de751e8e1..db5eca2909 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ISearchChannelsWindowView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ISearchChannelsWindowView.cs @@ -2,7 +2,7 @@ using DCL.Chat.Channels; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public interface ISearchChannelsWindowView { @@ -33,4 +33,4 @@ public interface ISearchChannelsWindowView void HideCreateChannelOnSearch(); void SetCreateChannelButtonsActive(bool isActive); } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IWorldChatWindowView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IWorldChatWindowView.cs index 225882e836..8a9d45a5c4 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IWorldChatWindowView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IWorldChatWindowView.cs @@ -1,48 +1,50 @@ -using DCL; using System; using System.Collections.Generic; using UnityEngine; -public interface IWorldChatWindowView +namespace DCL.Social.Chat { - event Action OnClose; - event Action OnOpenPrivateChat; - event Action OnOpenPublicChat; - event Action OnSearchChatRequested; - event Action OnRequireMorePrivateChats; - event Action OnOpenChannelSearch; - event Action OnLeaveChannel; - event Action OnCreateChannel; - event Action OnSignUp; - event Action OnRequireWalletReadme; + public interface IWorldChatWindowView + { + event Action OnClose; + event Action OnOpenPrivateChat; + event Action OnOpenPublicChat; + event Action OnSearchChatRequested; + event Action OnRequireMorePrivateChats; + event Action OnOpenChannelSearch; + event Action OnLeaveChannel; + event Action OnCreateChannel; + event Action OnSignUp; + event Action OnRequireWalletReadme; - RectTransform Transform { get; } - bool IsActive { get; } + RectTransform Transform { get; } + bool IsActive { get; } - void Initialize(IChatController chatController, DataStore_Mentions mentionsDataStore); - void Show(); - void Hide(); - void SetPrivateChat(PrivateChatModel model); - void RemovePrivateChat(string userId); - void SetPublicChat(PublicChatModel model); - void RemovePublicChat(string channelId); - void ShowChannelsLoading(); - void HideChannelsLoading(); - void ShowPrivateChatsLoading(); - void HidePrivateChatsLoading(); - void RefreshBlockedDirectMessages(List blockedUsers); - void RefreshPrivateChatPresence(string userId, bool isOnline); - void Dispose(); - void DisableSearchMode(); - void HideMoreChatsToLoadHint(); - void ShowMoreChatsToLoadHint(int count); - void ShowSearchLoading(); - void HideSearchLoading(); - void EnableSearchMode(); - bool ContainsPrivateChannel(string userId); - void SetCreateChannelButtonActive(bool isActive); - void SetSearchAndCreateContainerActive(bool isActive); - void ShowConnectWallet(); - void HideConnectWallet(); - void SetChannelsPromoteLabelVisible(bool isVisible); + void Initialize(IChatController chatController, DataStore_Mentions mentionsDataStore); + void Show(); + void Hide(); + void SetPrivateChat(PrivateChatModel model); + void RemovePrivateChat(string userId); + void SetPublicChat(PublicChatModel model); + void RemovePublicChat(string channelId); + void ShowChannelsLoading(); + void HideChannelsLoading(); + void ShowPrivateChatsLoading(); + void HidePrivateChatsLoading(); + void RefreshBlockedDirectMessages(List blockedUsers); + void RefreshPrivateChatPresence(string userId, bool isOnline); + void Dispose(); + void DisableSearchMode(); + void HideMoreChatsToLoadHint(); + void ShowMoreChatsToLoadHint(int count); + void ShowSearchLoading(); + void HideSearchLoading(); + void EnableSearchMode(); + bool ContainsPrivateChannel(string userId); + void SetCreateChannelButtonActive(bool isActive); + void SetSearchAndCreateContainerActive(bool isActive); + void ShowConnectWallet(); + void HideConnectWallet(); + void SetChannelsPromoteLabelVisible(bool isVisible); + } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/LeaveChannelConfirmationWindowComponentModel.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/LeaveChannelConfirmationWindowComponentModel.cs index b025491aab..9b04f13435 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/LeaveChannelConfirmationWindowComponentModel.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/LeaveChannelConfirmationWindowComponentModel.cs @@ -1,10 +1,10 @@ using System; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { [Serializable] public class LeaveChannelConfirmationWindowComponentModel : BaseComponentModel { public string channelId; } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/LeaveChannelConfirmationWindowComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/LeaveChannelConfirmationWindowComponentView.cs index 1b012c9b94..662678656f 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/LeaveChannelConfirmationWindowComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/LeaveChannelConfirmationWindowComponentView.cs @@ -2,7 +2,7 @@ using UnityEngine; using UnityEngine.UI; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class LeaveChannelConfirmationWindowComponentView : BaseComponentView, ILeaveChannelConfirmationWindowComponentView, IComponentModelConfig { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/LeaveChannelConfirmationWindowController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/LeaveChannelConfirmationWindowController.cs index 71feebc892..75800c89da 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/LeaveChannelConfirmationWindowController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/LeaveChannelConfirmationWindowController.cs @@ -1,6 +1,6 @@ using DCL.Chat.Channels; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class LeaveChannelConfirmationWindowController : IHUD { @@ -60,8 +60,8 @@ private void HandleChannelLeft(string channelId) { joinChannelView.Hide(); } - + private void HandleChannelLeaveError(string channelId, ChannelErrorCode errorCode) => joinChannelView.Hide(); } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/NearbyMembersHUDController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/NearbyMembersHUDController.cs index 4adcec5c5d..f20f0d04dd 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/NearbyMembersHUDController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/NearbyMembersHUDController.cs @@ -1,6 +1,7 @@ -using System; +using DCL.Social.Chat; +using System; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class NearbyMembersHUDController : IDisposable { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PrivateChatEntry.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PrivateChatEntry.cs index e1930c8ad1..772780dd82 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PrivateChatEntry.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PrivateChatEntry.cs @@ -1,9 +1,10 @@ +using DCL.Social.Chat; using System; using TMPro; using UnityEngine; using UnityEngine.UI; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class PrivateChatEntry : BaseComponentView, IComponentModelConfig { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PrivateChatEntryModel.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PrivateChatEntryModel.cs index ad40e771a5..e2ebbcad5a 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PrivateChatEntryModel.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PrivateChatEntryModel.cs @@ -1,6 +1,6 @@ using System; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { [Serializable] public class PrivateChatEntryModel : BaseComponentModel @@ -26,4 +26,4 @@ public PrivateChatEntryModel(string userId, string userName, string lastMessage, this.lastMessageTimestamp = lastMessageTimestamp; } } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PrivateChatModel.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PrivateChatModel.cs index 642fedf571..c521fbd2ed 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PrivateChatModel.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PrivateChatModel.cs @@ -1,11 +1,14 @@ using DCL.Interface; -public struct PrivateChatModel +namespace DCL.Social.Chat { - public string userId; - public string userName; - public string faceSnapshotUrl; - public ChatMessage recentMessage; - public bool isBlocked; - public bool isOnline; + public struct PrivateChatModel + { + public string userId; + public string userName; + public string faceSnapshotUrl; + public ChatMessage recentMessage; + public bool isBlocked; + public bool isOnline; + } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PromoteChannelsToastComponentController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PromoteChannelsToastComponentController.cs index 9790c05ebf..23db61177b 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PromoteChannelsToastComponentController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PromoteChannelsToastComponentController.cs @@ -1,7 +1,7 @@ using DCL.Helpers; using System; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class PromoteChannelsToastComponentController : IDisposable { @@ -92,4 +92,4 @@ public void Dispose() isTutorialRunning.OnChange -= IsTutorialRunning_OnChange; } } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PromoteChannelsToastComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PromoteChannelsToastComponentView.cs index 81aeac0f8c..aad861a607 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PromoteChannelsToastComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PromoteChannelsToastComponentView.cs @@ -1,7 +1,7 @@ using System; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class PromoteChannelsToastComponentView : BaseComponentView, IPromoteChannelsToastComponentView { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PromoteChannelsToastPlugin.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PromoteChannelsToastPlugin.cs index 1ed535a0cd..ff0fcfc7f0 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PromoteChannelsToastPlugin.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PromoteChannelsToastPlugin.cs @@ -3,7 +3,7 @@ using System.Threading; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class PromoteChannelsToastPlugin : IPlugin { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PublicChatEntry.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PublicChatEntry.cs index 3589d3c360..74e6473439 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PublicChatEntry.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PublicChatEntry.cs @@ -1,9 +1,10 @@ +using DCL.Social.Chat; using System; using TMPro; using UnityEngine; using UnityEngine.UI; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class PublicChatEntry : BaseComponentView, IComponentModelConfig { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PublicChatEntryModel.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PublicChatEntryModel.cs index cd11c373b1..00a10b3e52 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PublicChatEntryModel.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PublicChatEntryModel.cs @@ -1,6 +1,6 @@ using System; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { [Serializable] public class PublicChatEntryModel : BaseComponentModel @@ -22,4 +22,4 @@ public PublicChatEntryModel(string channelId, string name, bool isJoined, int me this.muted = muted; } } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PublicChatModel.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PublicChatModel.cs index 3da58db94d..0a04f109d7 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PublicChatModel.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PublicChatModel.cs @@ -1,35 +1,38 @@ using System; -[Serializable] -public class PublicChatModel : BaseComponentModel +namespace DCL.Social.Chat { - public string channelId; - public string name; - public string description; - public bool joined; - public int memberCount; - public bool muted; - public bool showOnlyOnlineMembers; - - public PublicChatModel(string channelId, string name, string description, bool joined, - int memberCount, bool muted, bool showOnlyOnlineMembers) + [Serializable] + public class PublicChatModel : BaseComponentModel { - this.channelId = channelId; - this.name = name; - this.description = description; - this.joined = joined; - this.memberCount = memberCount; - this.muted = muted; - this.showOnlyOnlineMembers = showOnlyOnlineMembers; - } + public string channelId; + public string name; + public string description; + public bool joined; + public int memberCount; + public bool muted; + public bool showOnlyOnlineMembers; - public void CopyFrom(PublicChatModel model) - { - channelId = model.channelId; - name = model.name; - description = model.description; - joined = model.joined; - memberCount = model.memberCount; - muted = model.muted; + public PublicChatModel(string channelId, string name, string description, bool joined, + int memberCount, bool muted, bool showOnlyOnlineMembers) + { + this.channelId = channelId; + this.name = name; + this.description = description; + this.joined = joined; + this.memberCount = memberCount; + this.muted = muted; + this.showOnlyOnlineMembers = showOnlyOnlineMembers; + } + + public void CopyFrom(PublicChatModel model) + { + channelId = model.channelId; + name = model.name; + description = model.description; + joined = model.joined; + memberCount = model.memberCount; + muted = model.muted; + } } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PublicChatWindowComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PublicChatWindowComponentView.cs index 122f6d8fa1..3b627448ed 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PublicChatWindowComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PublicChatWindowComponentView.cs @@ -1,4 +1,3 @@ -using DCL.Chat.HUD; using DCL.Social.Chat; using System; using TMPro; @@ -6,115 +5,118 @@ using UnityEngine.EventSystems; using UnityEngine.UI; -public class PublicChatWindowComponentView : BaseComponentView, IPublicChatWindowView, IComponentModelConfig, IPointerDownHandler +namespace DCL.Social.Chat { - private const int MEMBERS_SECTION_WIDTH = 280; - - [SerializeField] internal Button closeButton; - [SerializeField] internal Button backButton; - [SerializeField] internal TMP_Text nameLabel; - [SerializeField] internal ChatHUDView chatView; - [SerializeField] internal PublicChatModel model; - [SerializeField] internal ToggleComponentView muteToggle; - [SerializeField] internal RectTransform collapsableArea; - [SerializeField] internal ButtonComponentView expandMembersListButton; - [SerializeField] internal ButtonComponentView collapseMembersListButton; - [SerializeField] internal ChannelMembersComponentView membersList; - [SerializeField] internal ButtonComponentView goToCrowdButton; - [SerializeField] internal TMP_Text memberCountLabel; - [SerializeField] internal Button membersIconButton; - - private Coroutine alphaRoutine; - - public event Action OnClose; - public event Action OnBack; - public event Action OnFocused + public class PublicChatWindowComponentView : BaseComponentView, IPublicChatWindowView, IComponentModelConfig, IPointerDownHandler { - add => onFocused += value; - remove => onFocused -= value; - } - public event Action OnClickOverWindow; - public event Action OnMuteChanged; - public event Action OnShowMembersList; - public event Action OnHideMembersList; - public event Action OnGoToCrowd; - - public bool IsActive => gameObject.activeInHierarchy; - public IChatHUDComponentView ChatHUD => chatView; - public RectTransform Transform => (RectTransform) transform; - public IChannelMembersComponentView ChannelMembersHUD => membersList; - - private bool isMembersSectionOpen; - private float collapsableAreaOriginalWidth; - private Color targetGraphicColor; - - public override void Awake() - { - base.Awake(); - - backButton.onClick.AddListener(() => OnBack?.Invoke()); - closeButton.onClick.AddListener(() => OnClose?.Invoke()); - muteToggle.OnSelectedChanged += (b, s, arg3) => OnMuteChanged?.Invoke(b); - expandMembersListButton.onClick.AddListener(ToggleMembersSection); - collapseMembersListButton.onClick.AddListener(ToggleMembersSection); - collapsableAreaOriginalWidth = collapsableArea.sizeDelta.x; - membersIconButton.onClick.AddListener(ToggleMembersSection); - targetGraphicColor = membersIconButton.targetGraphic.color; - - if (goToCrowdButton != null) - goToCrowdButton.onClick.AddListener(() => OnGoToCrowd?.Invoke()); - } - - public override void RefreshControl() - { - nameLabel.text = $"~{model.name}"; - memberCountLabel.text = model.memberCount.ToString(); - muteToggle.SetIsOnWithoutNotify(model.muted); - } - - public void Hide() => gameObject.SetActive(false); - - public void Show() - { - gameObject.SetActive(true); + private const int MEMBERS_SECTION_WIDTH = 280; + + [SerializeField] internal Button closeButton; + [SerializeField] internal Button backButton; + [SerializeField] internal TMP_Text nameLabel; + [SerializeField] internal ChatHUDView chatView; + [SerializeField] internal PublicChatModel model; + [SerializeField] internal ToggleComponentView muteToggle; + [SerializeField] internal RectTransform collapsableArea; + [SerializeField] internal ButtonComponentView expandMembersListButton; + [SerializeField] internal ButtonComponentView collapseMembersListButton; + [SerializeField] internal ChannelMembersComponentView membersList; + [SerializeField] internal ButtonComponentView goToCrowdButton; + [SerializeField] internal TMP_Text memberCountLabel; + [SerializeField] internal Button membersIconButton; + + private Coroutine alphaRoutine; + + public event Action OnClose; + public event Action OnBack; + public event Action OnFocused + { + add => onFocused += value; + remove => onFocused -= value; + } + public event Action OnClickOverWindow; + public event Action OnMuteChanged; + public event Action OnShowMembersList; + public event Action OnHideMembersList; + public event Action OnGoToCrowd; + + public bool IsActive => gameObject.activeInHierarchy; + public IChatHUDComponentView ChatHUD => chatView; + public RectTransform Transform => (RectTransform) transform; + public IChannelMembersComponentView ChannelMembersHUD => membersList; + + private bool isMembersSectionOpen; + private float collapsableAreaOriginalWidth; + private Color targetGraphicColor; + + public override void Awake() + { + base.Awake(); + + backButton.onClick.AddListener(() => OnBack?.Invoke()); + closeButton.onClick.AddListener(() => OnClose?.Invoke()); + muteToggle.OnSelectedChanged += (b, s, arg3) => OnMuteChanged?.Invoke(b); + expandMembersListButton.onClick.AddListener(ToggleMembersSection); + collapseMembersListButton.onClick.AddListener(ToggleMembersSection); + collapsableAreaOriginalWidth = collapsableArea.sizeDelta.x; + membersIconButton.onClick.AddListener(ToggleMembersSection); + targetGraphicColor = membersIconButton.targetGraphic.color; + + if (goToCrowdButton != null) + goToCrowdButton.onClick.AddListener(() => OnGoToCrowd?.Invoke()); + } - if (!isMembersSectionOpen) - ToggleMembersSection(); - } + public override void RefreshControl() + { + nameLabel.text = $"~{model.name}"; + memberCountLabel.text = model.memberCount.ToString(); + muteToggle.SetIsOnWithoutNotify(model.muted); + } - public void Configure(PublicChatModel model) - { - this.model = model; - RefreshControl(); - } + public void Hide() => gameObject.SetActive(false); - public void OnPointerDown(PointerEventData eventData) => OnClickOverWindow?.Invoke(); + public void Show() + { + gameObject.SetActive(true); - public void UpdateMembersCount(int membersAmount) => - memberCountLabel.text = membersAmount.ToString(); + if (!isMembersSectionOpen) + ToggleMembersSection(); + } - private void ToggleMembersSection() - { - isMembersSectionOpen = !isMembersSectionOpen; + public void Configure(PublicChatModel model) + { + this.model = model; + RefreshControl(); + } - expandMembersListButton.gameObject.SetActive(!isMembersSectionOpen); - collapseMembersListButton.gameObject.SetActive(isMembersSectionOpen); + public void OnPointerDown(PointerEventData eventData) => OnClickOverWindow?.Invoke(); - collapsableArea.SetSizeWithCurrentAnchors( - RectTransform.Axis.Horizontal, - isMembersSectionOpen ? collapsableAreaOriginalWidth + MEMBERS_SECTION_WIDTH : collapsableAreaOriginalWidth); + public void UpdateMembersCount(int membersAmount) => + memberCountLabel.text = membersAmount.ToString(); - if (isMembersSectionOpen) - { - targetGraphicColor.a = 1f; - membersIconButton.targetGraphic.color = targetGraphicColor; - OnShowMembersList?.Invoke(); - } - else + private void ToggleMembersSection() { - targetGraphicColor.a = 0f; - membersIconButton.targetGraphic.color = targetGraphicColor; - OnHideMembersList?.Invoke(); + isMembersSectionOpen = !isMembersSectionOpen; + + expandMembersListButton.gameObject.SetActive(!isMembersSectionOpen); + collapseMembersListButton.gameObject.SetActive(isMembersSectionOpen); + + collapsableArea.SetSizeWithCurrentAnchors( + RectTransform.Axis.Horizontal, + isMembersSectionOpen ? collapsableAreaOriginalWidth + MEMBERS_SECTION_WIDTH : collapsableAreaOriginalWidth); + + if (isMembersSectionOpen) + { + targetGraphicColor.a = 1f; + membersIconButton.targetGraphic.color = targetGraphicColor; + OnShowMembersList?.Invoke(); + } + else + { + targetGraphicColor.a = 0f; + membersIconButton.targetGraphic.color = targetGraphicColor; + OnHideMembersList?.Invoke(); + } } } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PublicChatWindowController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PublicChatWindowController.cs index 31df547cca..63304a34a8 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PublicChatWindowController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/PublicChatWindowController.cs @@ -1,15 +1,14 @@ using Cysharp.Threading.Tasks; -using System; -using System.Collections.Generic; +using DCL.Chat; using DCL.Interface; using DCL.ProfanityFiltering; -using DCL.Social.Chat; using DCL.Social.Chat.Mentions; using SocialFeaturesAnalytics; -using UnityEngine; +using System; +using System.Collections.Generic; using Channel = DCL.Chat.Channels.Channel; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class PublicChatWindowController : IHUD { @@ -25,6 +24,7 @@ public class PublicChatWindowController : IHUD private readonly IMouseCatcher mouseCatcher; private readonly IChatMentionSuggestionProvider chatMentionSuggestionProvider; private readonly ISocialAnalytics socialAnalytics; + private readonly IClipboard clipboard; private ChatHUDController chatHudController; private string channelId; private bool skipChatInputTrigger; @@ -44,7 +44,8 @@ public PublicChatWindowController(IChatController chatController, IProfanityFilter profanityFilter, IMouseCatcher mouseCatcher, IChatMentionSuggestionProvider chatMentionSuggestionProvider, - ISocialAnalytics socialAnalytics) + ISocialAnalytics socialAnalytics, + IClipboard clipboard) { this.chatController = chatController; this.userProfileBridge = userProfileBridge; @@ -53,6 +54,7 @@ public PublicChatWindowController(IChatController chatController, this.mouseCatcher = mouseCatcher; this.chatMentionSuggestionProvider = chatMentionSuggestionProvider; this.socialAnalytics = socialAnalytics; + this.clipboard = clipboard; } public void Initialize(IPublicChatWindowView view, bool isVisible = true) @@ -72,6 +74,7 @@ public void Initialize(IPublicChatWindowView view, bool isVisible = true) (name, count, ct) => chatMentionSuggestionProvider.GetNearbyProfilesStartingWith(name, count, ct), socialAnalytics, chatController, + clipboard, profanityFilter); // dont set any message's sorting strategy, just add them sequentally // comms cannot calculate a server timestamp for each message diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/SearchChannelsWindowComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/SearchChannelsWindowComponentView.cs index 91b6eb2511..4a0abead77 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/SearchChannelsWindowComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/SearchChannelsWindowComponentView.cs @@ -6,7 +6,7 @@ using UnityEngine; using UnityEngine.UI; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class SearchChannelsWindowComponentView : BaseComponentView, ISearchChannelsWindowView { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/SearchChannelsWindowController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/SearchChannelsWindowController.cs index a4064a624e..60424f11ce 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/SearchChannelsWindowController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/SearchChannelsWindowController.cs @@ -2,11 +2,12 @@ using System.Collections.Generic; using System.Threading; using Cysharp.Threading.Tasks; +using DCL.Chat; using SocialFeaturesAnalytics; using UnityEngine; using Channel = DCL.Chat.Channels.Channel; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class SearchChannelsWindowController : IHUD { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelContextualMenuShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelContextualMenuShould.cs index c82e71b147..5a7b9c3273 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelContextualMenuShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelContextualMenuShould.cs @@ -2,7 +2,7 @@ using UnityEditor; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChannelContextualMenuShould { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelJoinErrorWindowComponentViewShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelJoinErrorWindowComponentViewShould.cs index c23a1e2491..e1862295f0 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelJoinErrorWindowComponentViewShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelJoinErrorWindowComponentViewShould.cs @@ -2,7 +2,7 @@ using UnityEditor; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChannelJoinErrorWindowComponentViewShould { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelJoinErrorWindowControllerShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelJoinErrorWindowControllerShould.cs index 6cd8fc3e78..d03b68a383 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelJoinErrorWindowControllerShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelJoinErrorWindowControllerShould.cs @@ -3,7 +3,7 @@ using NSubstitute; using NUnit.Framework; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChannelJoinErrorWindowControllerShould { @@ -35,7 +35,7 @@ public void Show() public void HideWhenViewCloses() { view.OnClose += Raise.Event(); - + view.Received(1).Hide(); } @@ -44,11 +44,11 @@ public void RequestJoinWhenRetry() { dataStore.channels.joinChannelError.Set("randomChannel"); view.ClearReceivedCalls(); - + view.OnRetry += Raise.Event(); - + chatController.Received(1).JoinOrCreateChannel("randomChannel"); view.Received(1).Hide(); } } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelLeaveErrorWindowComponentViewShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelLeaveErrorWindowComponentViewShould.cs index 1408d751ad..a37e8daa69 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelLeaveErrorWindowComponentViewShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelLeaveErrorWindowComponentViewShould.cs @@ -2,7 +2,7 @@ using UnityEditor; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChannelLeaveErrorWindowComponentViewShould { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelLeaveErrorWindowControllerShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelLeaveErrorWindowControllerShould.cs index 89a4f9c127..b1c977002b 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelLeaveErrorWindowControllerShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelLeaveErrorWindowControllerShould.cs @@ -3,7 +3,7 @@ using NSubstitute; using NUnit.Framework; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChannelLeaveErrorWindowControllerShould { @@ -35,7 +35,7 @@ public void Show() public void HideWhenViewCloses() { view.OnClose += Raise.Event(); - + view.Received(1).Hide(); } @@ -44,11 +44,11 @@ public void RequestLeaveWhenRetry() { dataStore.channels.leaveChannelError.Set("randomChannel"); view.ClearReceivedCalls(); - + view.OnRetry += Raise.Event(); - + chatController.Received(1).LeaveChannel("randomChannel"); view.Received(1).Hide(); } } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelLimitReachedWindowComponentViewShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelLimitReachedWindowComponentViewShould.cs index 4ea96f4416..d386e5b8cf 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelLimitReachedWindowComponentViewShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelLimitReachedWindowComponentViewShould.cs @@ -2,7 +2,7 @@ using UnityEditor; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChannelLimitReachedWindowComponentViewShould { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelLimitReachedWindowControllerShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelLimitReachedWindowControllerShould.cs index 42ea3b1331..a2d736098f 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelLimitReachedWindowControllerShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelLimitReachedWindowControllerShould.cs @@ -2,7 +2,7 @@ using NSubstitute; using NUnit.Framework; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChannelLimitReachedWindowControllerShould { @@ -30,8 +30,8 @@ public void Show() public void HideWhenViewCloses() { view.OnClose += Raise.Event(); - + view.Received(1).Hide(); } } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelLinkDetectorShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelLinkDetectorShould.cs index 18d9351484..8476e6555d 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelLinkDetectorShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelLinkDetectorShould.cs @@ -5,7 +5,7 @@ using UnityEngine; using UnityEngine.TestTools; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChannelLinkDetectorShould { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelMemberEntryShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelMemberEntryShould.cs index 08375400cc..42515bcaf4 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelMemberEntryShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelMemberEntryShould.cs @@ -1,51 +1,54 @@ -using DCL.Chat.HUD; +using DCL.Social.Chat; using DCL.Helpers; using NSubstitute; using NUnit.Framework; using UnityEditor; using UnityEngine; -public class ChannelMemberEntryShould +namespace DCL.Social.Chat { - private ChannelMemberEntry channelMemberEntryComponent; - - [SetUp] - public void SetUp() + public class ChannelMemberEntryShould { - channelMemberEntryComponent = Object.Instantiate( - AssetDatabase.LoadAssetAtPath( - "Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/ChannelMemberEntry.prefab")); + private ChannelMemberEntry channelMemberEntryComponent; - channelMemberEntryComponent.userThumbnail.imageObserver = Substitute.For(); - } + [SetUp] + public void SetUp() + { + channelMemberEntryComponent = Object.Instantiate( + AssetDatabase.LoadAssetAtPath( + "Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/ChannelMemberEntry.prefab")); - [TearDown] - public void TearDown() - { - channelMemberEntryComponent.Dispose(); - } + channelMemberEntryComponent.userThumbnail.imageObserver = Substitute.For(); + } - [Test] - [TestCase(true)] - [TestCase(false)] - public void ConfigureEntryCorrectly(bool isOnline) - { - // Arrange - ChannelMemberEntryModel testModel = new ChannelMemberEntryModel + [TearDown] + public void TearDown() + { + channelMemberEntryComponent.Dispose(); + } + + [Test] + [TestCase(true)] + [TestCase(false)] + public void ConfigureEntryCorrectly(bool isOnline) { - userId = "testId", - userName = "testName", - thumnailUrl = "testUri", - isOnline = isOnline - }; + // Arrange + ChannelMemberEntryModel testModel = new ChannelMemberEntryModel + { + userId = "testId", + userName = "testName", + thumnailUrl = "testUri", + isOnline = isOnline + }; - // Act - channelMemberEntryComponent.Configure(testModel); + // Act + channelMemberEntryComponent.Configure(testModel); - // Assert - Assert.AreEqual(testModel, channelMemberEntryComponent.model); - Assert.AreEqual(testModel.userName, channelMemberEntryComponent.nameLabel.text); - Assert.AreEqual(isOnline, channelMemberEntryComponent.onlineMark.activeSelf); - Assert.AreEqual(!isOnline, channelMemberEntryComponent.offlineMark.activeSelf); + // Assert + Assert.AreEqual(testModel, channelMemberEntryComponent.model); + Assert.AreEqual(testModel.userName, channelMemberEntryComponent.nameLabel.text); + Assert.AreEqual(isOnline, channelMemberEntryComponent.onlineMark.activeSelf); + Assert.AreEqual(!isOnline, channelMemberEntryComponent.offlineMark.activeSelf); + } } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelMembersComponentViewShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelMembersComponentViewShould.cs index a773107379..774d6b3f69 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelMembersComponentViewShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelMembersComponentViewShould.cs @@ -1,209 +1,212 @@ using System.Collections; -using DCL.Chat.HUD; +using DCL.Social.Chat; using NUnit.Framework; using UnityEditor; using UnityEngine; using UnityEngine.TestTools; -public class ChannelMembersComponentViewShould +namespace DCL.Social.Chat { - private ChannelMembersComponentView experienceRowComponent; - - [SetUp] - public void SetUp() - { - experienceRowComponent = Object.Instantiate( - AssetDatabase.LoadAssetAtPath( - "Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/ChannelMembersHUD.prefab")); - } - - [TearDown] - public void TearDown() + public class ChannelMembersComponentViewShould { - experienceRowComponent.Dispose(); - } + private ChannelMembersComponentView experienceRowComponent; - [Test] - public void ClearAllEntriesCorrectly() - { - // Arrange - string testId = "testId"; - ChannelMemberEntryModel testModel = new ChannelMemberEntryModel + [SetUp] + public void SetUp() { - userId = testId, - isOnline = true, - thumnailUrl = "testUri", - userName = "testName" - }; + experienceRowComponent = Object.Instantiate( + AssetDatabase.LoadAssetAtPath( + "Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/ChannelMembersHUD.prefab")); + } - experienceRowComponent.memberList.Set(testId, testModel); - - // Act - experienceRowComponent.ClearAllEntries(); - - // Assert - Assert.AreEqual(0, experienceRowComponent.memberList.Count()); - Assert.AreEqual($"Results ({0})", experienceRowComponent.resultsHeaderLabel.text); - } - - [Test] - public void ShowLoadingCorrectly() - { - // Arrange - experienceRowComponent.loadingContainer.SetActive(false); - experienceRowComponent.memberList.gameObject.SetActive(true); - experienceRowComponent.resultsHeaderLabel.gameObject.SetActive(true); - - // Act - experienceRowComponent.ShowLoading(); - - // Assert - Assert.IsTrue(experienceRowComponent.loadingContainer.activeSelf); - Assert.IsFalse(experienceRowComponent.memberList.gameObject.activeSelf); - Assert.IsFalse(experienceRowComponent.resultsHeaderLabel.gameObject.activeSelf); - } - - [UnityTest] - public IEnumerator SetCorrectly() - { - // Arrange - experienceRowComponent.memberList.Clear(); - string testId = "testId"; - ChannelMemberEntryModel testModel = new ChannelMemberEntryModel + [TearDown] + public void TearDown() { - userId = testId, - isOnline = true, - thumnailUrl = "", - userName = "testName" - }; - - // Act - experienceRowComponent.Set(testModel); - // wait for the queued entry to be added in the next frame - yield return null; - - // Assert - Assert.IsTrue(experienceRowComponent.memberList.Contains(testId)); - Assert.AreEqual($"Results ({1})", experienceRowComponent.resultsHeaderLabel.text); - } + experienceRowComponent.Dispose(); + } - [UnityTest] - public IEnumerator RemoveCorrectly() - { - // Act - yield return SetCorrectly(); - experienceRowComponent.Remove("testId"); - - // Assert - Assert.IsFalse(experienceRowComponent.memberList.Contains("testId")); - Assert.AreEqual($"Results ({0})", experienceRowComponent.resultsHeaderLabel.text); - } + [Test] + public void ClearAllEntriesCorrectly() + { + // Arrange + string testId = "testId"; + ChannelMemberEntryModel testModel = new ChannelMemberEntryModel + { + userId = testId, + isOnline = true, + thumnailUrl = "testUri", + userName = "testName" + }; + + experienceRowComponent.memberList.Set(testId, testModel); + + // Act + experienceRowComponent.ClearAllEntries(); + + // Assert + Assert.AreEqual(0, experienceRowComponent.memberList.Count()); + Assert.AreEqual($"Results ({0})", experienceRowComponent.resultsHeaderLabel.text); + } + + [Test] + public void ShowLoadingCorrectly() + { + // Arrange + experienceRowComponent.loadingContainer.SetActive(false); + experienceRowComponent.memberList.gameObject.SetActive(true); + experienceRowComponent.resultsHeaderLabel.gameObject.SetActive(true); + + // Act + experienceRowComponent.ShowLoading(); + + // Assert + Assert.IsTrue(experienceRowComponent.loadingContainer.activeSelf); + Assert.IsFalse(experienceRowComponent.memberList.gameObject.activeSelf); + Assert.IsFalse(experienceRowComponent.resultsHeaderLabel.gameObject.activeSelf); + } + + [UnityTest] + public IEnumerator SetCorrectly() + { + // Arrange + experienceRowComponent.memberList.Clear(); + string testId = "testId"; + ChannelMemberEntryModel testModel = new ChannelMemberEntryModel + { + userId = testId, + isOnline = true, + thumnailUrl = "", + userName = "testName" + }; + + // Act + experienceRowComponent.Set(testModel); + // wait for the queued entry to be added in the next frame + yield return null; + + // Assert + Assert.IsTrue(experienceRowComponent.memberList.Contains(testId)); + Assert.AreEqual($"Results ({1})", experienceRowComponent.resultsHeaderLabel.text); + } + + [UnityTest] + public IEnumerator RemoveCorrectly() + { + // Act + yield return SetCorrectly(); + experienceRowComponent.Remove("testId"); - [Test] - public void ShowCorrectly() - { - // Arrange - experienceRowComponent.gameObject.SetActive(false); + // Assert + Assert.IsFalse(experienceRowComponent.memberList.Contains("testId")); + Assert.AreEqual($"Results ({0})", experienceRowComponent.resultsHeaderLabel.text); + } - // Act - experienceRowComponent.Show(); + [Test] + public void ShowCorrectly() + { + // Arrange + experienceRowComponent.gameObject.SetActive(false); - // Assert - Assert.IsTrue(experienceRowComponent.gameObject.activeSelf); - } + // Act + experienceRowComponent.Show(); - [Test] - public void HideCorrectly() - { - // Arrange - experienceRowComponent.gameObject.SetActive(true); + // Assert + Assert.IsTrue(experienceRowComponent.gameObject.activeSelf); + } - // Act - experienceRowComponent.Hide(); + [Test] + public void HideCorrectly() + { + // Arrange + experienceRowComponent.gameObject.SetActive(true); - // Assert - Assert.IsFalse(experienceRowComponent.gameObject.activeSelf); - } + // Act + experienceRowComponent.Hide(); - [Test] - public void ClearSearchInputCorrectly() - { - // Arrange - experienceRowComponent.searchBar.inputField.text = "test text"; + // Assert + Assert.IsFalse(experienceRowComponent.gameObject.activeSelf); + } - // Act - experienceRowComponent.ClearSearchInput(); + [Test] + public void ClearSearchInputCorrectly() + { + // Arrange + experienceRowComponent.searchBar.inputField.text = "test text"; - // Assert - Assert.AreEqual("", experienceRowComponent.searchBar.Text); - } + // Act + experienceRowComponent.ClearSearchInput(); - [Test] - public void HideLoadingCorrectly() - { - // Arrange - experienceRowComponent.loadingContainer.SetActive(true); - experienceRowComponent.memberList.gameObject.SetActive(false); - experienceRowComponent.resultsHeaderLabel.gameObject.SetActive(false); - - // Act - experienceRowComponent.HideLoading(); - - // Assert - Assert.IsFalse(experienceRowComponent.loadingContainer.activeSelf); - Assert.IsTrue(experienceRowComponent.memberList.gameObject.activeSelf); - Assert.IsTrue(experienceRowComponent.resultsHeaderLabel.gameObject.activeSelf); - } + // Assert + Assert.AreEqual("", experienceRowComponent.searchBar.Text); + } - [Test] - public void ShowLoadingMoreCorrectly() - { - // Arrange - experienceRowComponent.loadMoreContainer.SetActive(false); + [Test] + public void HideLoadingCorrectly() + { + // Arrange + experienceRowComponent.loadingContainer.SetActive(true); + experienceRowComponent.memberList.gameObject.SetActive(false); + experienceRowComponent.resultsHeaderLabel.gameObject.SetActive(false); + + // Act + experienceRowComponent.HideLoading(); + + // Assert + Assert.IsFalse(experienceRowComponent.loadingContainer.activeSelf); + Assert.IsTrue(experienceRowComponent.memberList.gameObject.activeSelf); + Assert.IsTrue(experienceRowComponent.resultsHeaderLabel.gameObject.activeSelf); + } + + [Test] + public void ShowLoadingMoreCorrectly() + { + // Arrange + experienceRowComponent.loadMoreContainer.SetActive(false); - // Act - experienceRowComponent.ShowLoadingMore(); + // Act + experienceRowComponent.ShowLoadingMore(); - // Assert - Assert.IsTrue(experienceRowComponent.loadMoreContainer.activeSelf); - } + // Assert + Assert.IsTrue(experienceRowComponent.loadMoreContainer.activeSelf); + } - [Test] - public void HideLoadingMoreCorrectly() - { - // Arrange - experienceRowComponent.loadMoreContainer.SetActive(true); + [Test] + public void HideLoadingMoreCorrectly() + { + // Arrange + experienceRowComponent.loadMoreContainer.SetActive(true); - // Act - experienceRowComponent.HideLoadingMore(); + // Act + experienceRowComponent.HideLoadingMore(); - // Assert - Assert.IsFalse(experienceRowComponent.loadMoreContainer.activeSelf); - } + // Assert + Assert.IsFalse(experienceRowComponent.loadMoreContainer.activeSelf); + } - [Test] - public void ShowResultsHeaderCorrectly() - { - // Arrange - experienceRowComponent.resultsHeaderLabelContainer.SetActive(false); + [Test] + public void ShowResultsHeaderCorrectly() + { + // Arrange + experienceRowComponent.resultsHeaderLabelContainer.SetActive(false); - // Act - experienceRowComponent.ShowResultsHeader(); + // Act + experienceRowComponent.ShowResultsHeader(); - // Assert - Assert.IsTrue(experienceRowComponent.resultsHeaderLabelContainer.activeSelf); - } + // Assert + Assert.IsTrue(experienceRowComponent.resultsHeaderLabelContainer.activeSelf); + } - [Test] - public void HideResultsHeaderCorrectly() - { - // Arrange - experienceRowComponent.resultsHeaderLabelContainer.SetActive(true); + [Test] + public void HideResultsHeaderCorrectly() + { + // Arrange + experienceRowComponent.resultsHeaderLabelContainer.SetActive(true); - // Act - experienceRowComponent.HideResultsHeader(); + // Act + experienceRowComponent.HideResultsHeader(); - // Assert - Assert.IsFalse(experienceRowComponent.resultsHeaderLabelContainer.activeSelf); + // Assert + Assert.IsFalse(experienceRowComponent.resultsHeaderLabelContainer.activeSelf); + } } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelMembersHUDControllerShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelMembersHUDControllerShould.cs index 7d1dcdc00f..e31330b473 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelMembersHUDControllerShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChannelMembersHUDControllerShould.cs @@ -1,192 +1,194 @@ -using DCL; using DCL.Chat.Channels; -using DCL.Chat.HUD; +using DCL.Social.Chat; using NSubstitute; using NSubstitute.Extensions; using NUnit.Framework; using System; using UnityEngine; -public class ChannelMembersHUDControllerShould +namespace DCL.Social.Chat { - private ChannelMembersHUDController channelMembersHUDController; - private IChannelMembersComponentView channelMembersComponentView; - private IChatController chatController; - private IUserProfileBridge userProfileBridge; - private DataStore_Channels dataStoreChannels; - - [SetUp] - public void SetUp() + public class ChannelMembersHUDControllerShould { - channelMembersComponentView = Substitute.For(); - chatController = Substitute.For(); - userProfileBridge = Substitute.For(); - dataStoreChannels = new DataStore_Channels(); - channelMembersHUDController = new ChannelMembersHUDController(channelMembersComponentView, chatController, userProfileBridge, dataStoreChannels); - channelMembersHUDController.SetMembersCount(100); - } + private ChannelMembersHUDController channelMembersHUDController; + private IChannelMembersComponentView channelMembersComponentView; + private IChatController chatController; + private IUserProfileBridge userProfileBridge; + private DataStore_Channels dataStoreChannels; + + [SetUp] + public void SetUp() + { + channelMembersComponentView = Substitute.For(); + chatController = Substitute.For(); + userProfileBridge = Substitute.For(); + dataStoreChannels = new DataStore_Channels(); + channelMembersHUDController = new ChannelMembersHUDController(channelMembersComponentView, chatController, userProfileBridge, dataStoreChannels); + channelMembersHUDController.SetMembersCount(100); + } - [TearDown] - public void TearDown() { channelMembersHUDController.Dispose(); } + [TearDown] + public void TearDown() { channelMembersHUDController.Dispose(); } - [Test] - public void InitializeCorrectly() - { - // Assert - Assert.AreEqual(channelMembersComponentView, channelMembersHUDController.View); - } + [Test] + public void InitializeCorrectly() + { + // Assert + Assert.AreEqual(channelMembersComponentView, channelMembersHUDController.View); + } - [Test] - public void SetChannelIdCorrectly() - { - // Arrange - string testId = "testId"; + [Test] + public void SetChannelIdCorrectly() + { + // Arrange + string testId = "testId"; - // Act - channelMembersHUDController.SetChannelId(testId); + // Act + channelMembersHUDController.SetChannelId(testId); - // Assert - Assert.AreEqual(testId, channelMembersHUDController.CurrentChannelId); - } + // Assert + Assert.AreEqual(testId, channelMembersHUDController.CurrentChannelId); + } - [Test] - [TestCase(true)] - [TestCase(false)] - public void SetVisibilityCorrectly(bool isVisible) - { - // Act - channelMembersHUDController.SetVisibility(isVisible); + [Test] + [TestCase(true)] + [TestCase(false)] + public void SetVisibilityCorrectly(bool isVisible) + { + // Act + channelMembersHUDController.SetVisibility(isVisible); + + // Assert + if (isVisible) + { + channelMembersComponentView.Received(1).ClearSearchInput(false); + channelMembersComponentView.Received(1).Show(); + channelMembersComponentView.Received(1).ClearAllEntries(); + channelMembersComponentView.Received(1).ShowLoading(); + chatController.Received(1).GetChannelInfo(Arg.Any()); + chatController.Received(1).GetChannelMembers(Arg.Any(), 0, 0); + } + else + { + channelMembersComponentView.Received(1).Hide(); + } + } - // Assert - if (isVisible) + [Test] + public void LoadMembersCorrectly() { + // Act + string testChannelId = "testId"; + channelMembersHUDController.SetChannelId(testChannelId); + channelMembersHUDController.SetVisibility(true); + + // Assert channelMembersComponentView.Received(1).ClearSearchInput(false); channelMembersComponentView.Received(1).Show(); channelMembersComponentView.Received(1).ClearAllEntries(); channelMembersComponentView.Received(1).ShowLoading(); chatController.Received(1).GetChannelInfo(Arg.Any()); - chatController.Received(1).GetChannelMembers(Arg.Any(), 0, 0); - } - else - { - channelMembersComponentView.Received(1).Hide(); - } - } - - [Test] - public void LoadMembersCorrectly() - { - // Act - string testChannelId = "testId"; - channelMembersHUDController.SetChannelId(testChannelId); - channelMembersHUDController.SetVisibility(true); - - // Assert - channelMembersComponentView.Received(1).ClearSearchInput(false); - channelMembersComponentView.Received(1).Show(); - channelMembersComponentView.Received(1).ClearAllEntries(); - channelMembersComponentView.Received(1).ShowLoading(); - chatController.Received(1).GetChannelInfo(Arg.Any()); - chatController.Received(1).GetChannelMembers(testChannelId, 30, 0); - } - - [Test] - [TestCase("test text")] - [TestCase(null)] - public void SearchMembersCorrectly(string textToSearch) - { - // Act - string testChannelId = "testId"; - channelMembersHUDController.SetChannelId(testChannelId); - channelMembersHUDController.SetVisibility(true); - channelMembersComponentView.OnSearchUpdated += Raise.Event>(textToSearch); - - // Assert - channelMembersComponentView.Received().ClearAllEntries(); - channelMembersComponentView.Received().HideLoadingMore(); - channelMembersComponentView.Received().ShowLoading(); - if (string.IsNullOrEmpty(textToSearch)) - { - chatController.Received().GetChannelMembers(testChannelId, 30, 0); - channelMembersComponentView.Received(1).HideResultsHeader(); + chatController.Received(1).GetChannelMembers(testChannelId, 30, 0); } - else - { - chatController.Received(1).GetChannelMembers(testChannelId, 30, 0, textToSearch); - channelMembersComponentView.Received(1).ShowResultsHeader(); - } - } - [Test] - public void UpdateChannelMembersCorrectly() - { - const string testChannelId = "testChannelId"; - - // Arrange - var testUserId1Profile = ScriptableObject.CreateInstance(); - testUserId1Profile.UpdateData(new UserProfileModel + [Test] + [TestCase("test text")] + [TestCase(null)] + public void SearchMembersCorrectly(string textToSearch) { - userId = "testUserId1", - name = "testUserId1", - snapshots = new UserProfileModel.Snapshots + // Act + string testChannelId = "testId"; + channelMembersHUDController.SetChannelId(testChannelId); + channelMembersHUDController.SetVisibility(true); + channelMembersComponentView.OnSearchUpdated += Raise.Event>(textToSearch); + + // Assert + channelMembersComponentView.Received().ClearAllEntries(); + channelMembersComponentView.Received().HideLoadingMore(); + channelMembersComponentView.Received().ShowLoading(); + if (string.IsNullOrEmpty(textToSearch)) { - face256 = "" + chatController.Received().GetChannelMembers(testChannelId, 30, 0); + channelMembersComponentView.Received(1).HideResultsHeader(); } - }); - userProfileBridge.Configure().Get("testUserId1").Returns(info => testUserId1Profile); - - var testUserId2Profile = ScriptableObject.CreateInstance(); - testUserId2Profile.UpdateData(new UserProfileModel - { - userId = "testUserId2", - name = "testUserId2", - snapshots = new UserProfileModel.Snapshots + else { - face256 = "" + chatController.Received(1).GetChannelMembers(testChannelId, 30, 0, textToSearch); + channelMembersComponentView.Received(1).ShowResultsHeader(); } - }); - userProfileBridge.Configure().Get("testUserId2").Returns(info => testUserId2Profile); - - var ownProfile = ScriptableObject.CreateInstance(); - ownProfile.UpdateData(new UserProfileModel{userId = "ownProfileId"}); - userProfileBridge.GetOwn().Returns(ownProfile); + } - ChannelMember[] testChannelMembers = + [Test] + public void UpdateChannelMembersCorrectly() { - new ChannelMember { userId = "testUserId1", isOnline = false }, - new ChannelMember { userId = "testUserId2", isOnline = true }, - }; - - // Act - channelMembersHUDController.SetChannelId("testId"); - channelMembersHUDController.SetVisibility(true); - chatController.OnUpdateChannelMembers += Raise.Event>(testChannelId, testChannelMembers); - - // Assert - channelMembersComponentView.Received(1).HideLoading(); - channelMembersComponentView.Received(1).Set(Arg.Is(c => - c.userName == "testUserId1")); - channelMembersComponentView.Received(1).Set(Arg.Is(c => - c.userName == "testUserId2")); - channelMembersComponentView.Received(testChannelMembers.Length).Set(Arg.Any()); - channelMembersComponentView.Received().ShowLoadingMore(); - } + const string testChannelId = "testChannelId"; - [Test] - public void LoadMoreMembersCorrectly() - { - // Arrange - channelMembersComponentView.ClearSearchInput(); - channelMembersComponentView.Configure().EntryCount.Returns(info => 5); - - // Act - channelMembersHUDController.SetChannelId("testId"); - channelMembersHUDController.SetVisibility(true); - channelMembersHUDController.loadStartedTimestamp = DateTime.MinValue; - channelMembersComponentView.OnRequestMoreMembers += Raise.Event(); - - // Assert - channelMembersComponentView.Received().HideLoadingMore(); - chatController.Received(1).GetChannelMembers(Arg.Any(), 30, channelMembersComponentView.EntryCount); + // Arrange + var testUserId1Profile = ScriptableObject.CreateInstance(); + testUserId1Profile.UpdateData(new UserProfileModel + { + userId = "testUserId1", + name = "testUserId1", + snapshots = new UserProfileModel.Snapshots + { + face256 = "" + } + }); + userProfileBridge.Configure().Get("testUserId1").Returns(info => testUserId1Profile); + + var testUserId2Profile = ScriptableObject.CreateInstance(); + testUserId2Profile.UpdateData(new UserProfileModel + { + userId = "testUserId2", + name = "testUserId2", + snapshots = new UserProfileModel.Snapshots + { + face256 = "" + } + }); + userProfileBridge.Configure().Get("testUserId2").Returns(info => testUserId2Profile); + + var ownProfile = ScriptableObject.CreateInstance(); + ownProfile.UpdateData(new UserProfileModel{userId = "ownProfileId"}); + userProfileBridge.GetOwn().Returns(ownProfile); + + ChannelMember[] testChannelMembers = + { + new ChannelMember { userId = "testUserId1", isOnline = false }, + new ChannelMember { userId = "testUserId2", isOnline = true }, + }; + + // Act + channelMembersHUDController.SetChannelId("testId"); + channelMembersHUDController.SetVisibility(true); + chatController.OnUpdateChannelMembers += Raise.Event>(testChannelId, testChannelMembers); + + // Assert + channelMembersComponentView.Received(1).HideLoading(); + channelMembersComponentView.Received(1).Set(Arg.Is(c => + c.userName == "testUserId1")); + channelMembersComponentView.Received(1).Set(Arg.Is(c => + c.userName == "testUserId2")); + channelMembersComponentView.Received(testChannelMembers.Length).Set(Arg.Any()); + channelMembersComponentView.Received().ShowLoadingMore(); + } + + [Test] + public void LoadMoreMembersCorrectly() + { + // Arrange + channelMembersComponentView.ClearSearchInput(); + channelMembersComponentView.Configure().EntryCount.Returns(info => 5); + + // Act + channelMembersHUDController.SetChannelId("testId"); + channelMembersHUDController.SetVisibility(true); + channelMembersHUDController.loadStartedTimestamp = DateTime.MinValue; + channelMembersComponentView.OnRequestMoreMembers += Raise.Event(); + + // Assert + channelMembersComponentView.Received().HideLoadingMore(); + chatController.Received(1).GetChannelMembers(Arg.Any(), 30, channelMembersComponentView.EntryCount); + } } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChatChannelComponentViewShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChatChannelComponentViewShould.cs index 14c8362fa6..a904c8ba15 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChatChannelComponentViewShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChatChannelComponentViewShould.cs @@ -2,7 +2,7 @@ using UnityEditor; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChatChannelComponentViewShould { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChatChannelHUDControllerShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChatChannelHUDControllerShould.cs index b292c07ed2..9c927b6f14 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChatChannelHUDControllerShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChatChannelHUDControllerShould.cs @@ -1,7 +1,6 @@ using Cysharp.Threading.Tasks; using DCL.Interface; using DCL.ProfanityFiltering; -using DCL.Social.Chat; using DCL.Social.Chat.Mentions; using NSubstitute; using NUnit.Framework; @@ -12,7 +11,7 @@ using UnityEngine; using Channel = DCL.Chat.Channels.Channel; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class ChatChannelHUDControllerShould { @@ -57,7 +56,8 @@ public void SetUp() Substitute.For(), socialAnalytics, profanityFilter, - mentionSuggestionProvider); + mentionSuggestionProvider, + Substitute.For()); view = Substitute.For(); chatView = Substitute.For(); diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/CollapsableChatSearchListComponentViewShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/CollapsableChatSearchListComponentViewShould.cs index 99a84e76de..b80395649e 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/CollapsableChatSearchListComponentViewShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/CollapsableChatSearchListComponentViewShould.cs @@ -3,7 +3,7 @@ using UnityEditor; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class CollapsableChatSearchListComponentViewShould { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/CreateChannelWindowComponentViewShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/CreateChannelWindowComponentViewShould.cs index 5666bfbe4f..8dd63c800a 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/CreateChannelWindowComponentViewShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/CreateChannelWindowComponentViewShould.cs @@ -2,7 +2,7 @@ using UnityEditor; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class CreateChannelWindowComponentViewShould { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/CreateChannelWindowControllerShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/CreateChannelWindowControllerShould.cs index 9a6658c894..a480f20300 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/CreateChannelWindowControllerShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/CreateChannelWindowControllerShould.cs @@ -3,7 +3,7 @@ using NSubstitute; using NUnit.Framework; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class CreateChannelWindowControllerShould { @@ -30,18 +30,18 @@ public void TearDown() public void Show() { controller.SetVisibility(true); - + view.Received(1).Show(); view.Received(1).ClearInputText(); view.Received(1).DisableCreateButton(); view.Received(1).FocusInputField(); } - + [Test] public void Hide() { controller.SetVisibility(false); - + view.Received(1).Hide(); } @@ -53,7 +53,7 @@ public void UpdateViewWhenItsValidChannel() view.ClearReceivedCalls(); view.OnChannelNameUpdated += Raise.Event>("foo"); - + view.Received(1).ClearError(); view.Received(1).EnableCreateButton(); } @@ -67,11 +67,11 @@ public void ShowChannelExistsErrorWithJoinOptionDisabled() view.ClearReceivedCalls(); view.OnChannelNameUpdated += Raise.Event>("foo"); - + view.Received(1).ShowChannelExistsError(false); view.Received(1).DisableCreateButton(); } - + [Test] public void ShowChannelExistsErrorWithJoinOptionEnabled() { @@ -81,11 +81,11 @@ public void ShowChannelExistsErrorWithJoinOptionEnabled() view.ClearReceivedCalls(); view.OnChannelNameUpdated += Raise.Event>("foo"); - + view.Received(1).ShowChannelExistsError(true); view.Received(1).DisableCreateButton(); } - + [Test] public void DisableCreationButtonWhenTextIsEmpty() { @@ -94,7 +94,7 @@ public void DisableCreationButtonWhenTextIsEmpty() view.ClearReceivedCalls(); view.OnChannelNameUpdated += Raise.Event>(""); - + view.Received(1).DisableCreateButton(); } @@ -109,10 +109,10 @@ public void DisableCreationButtonWhenTheNameIsUnsupported(string text) view.ClearReceivedCalls(); view.OnChannelNameUpdated += Raise.Event>(text); - + view.Received(1).DisableCreateButton(); } - + [Test] public void CreateChannel() { @@ -120,13 +120,13 @@ public void CreateChannel() controller.SetVisibility(true); view.OnChannelNameUpdated += Raise.Event>("foo"); view.ClearReceivedCalls(); - + view.OnCreateSubmit += Raise.Event(); - + chatController.Received(1).CreateChannel("foo"); view.Received(1).DisableCreateButton(); } - + [Test] public void JoinChannel() { @@ -134,7 +134,7 @@ public void JoinChannel() controller.SetVisibility(true); view.OnChannelNameUpdated += Raise.Event>("foo"); view.ClearReceivedCalls(); - + view.OnJoinChannel += Raise.Event(); chatController.Received(1).JoinOrCreateChannel("foo"); @@ -145,76 +145,76 @@ public void TriggerNavigationEventWhenJoinsChannel() { controller.SetVisibility(true); var navigatedChannel = ""; - controller.OnNavigateToChannelWindow += s => navigatedChannel = s; + controller.OnNavigateToChannelWindow += s => navigatedChannel = s; view.ClearReceivedCalls(); - + chatController.OnChannelJoined += Raise.Event>( new Channel("foo", "fooName", 0, 2, false, false, "")); - + Assert.AreEqual("foo", navigatedChannel); } - + [Test] public void ShowWrongFormatErrorWhenJoiningChannel() - { + { controller.SetVisibility(true); view.ClearReceivedCalls(); - + chatController.OnJoinChannelError += Raise.Event>( "foo", ChannelErrorCode.WrongFormat); - + view.Received(1).ShowWrongFormatError(); view.Received(1).DisableCreateButton(); } - + [Test] public void ShowChannelsExceededWhenJoiningChannel() - { + { controller.SetVisibility(true); view.ClearReceivedCalls(); - + chatController.OnJoinChannelError += Raise.Event>( "foo", ChannelErrorCode.LimitExceeded); - + view.Received(1).ShowChannelsExceededError(); view.Received(1).DisableCreateButton(); } - + [Test] public void ShowUnknownError() { controller.SetVisibility(true); view.ClearReceivedCalls(); - + chatController.OnJoinChannelError += Raise.Event>( "foo", ChannelErrorCode.Unknown); - + view.Received(1).ShowUnknownError(); view.Received(1).EnableCreateButton(); } - + [Test] public void ShowReservedNameError() { controller.SetVisibility(true); view.ClearReceivedCalls(); - + chatController.OnJoinChannelError += Raise.Event>( "foo", ChannelErrorCode.ReservedName); - + view.Received(1).ShowChannelExistsError(false); view.Received(1).DisableCreateButton(); } - + [Test] public void ShowAlreadyExistsError() { controller.SetVisibility(true); view.ClearReceivedCalls(); - + chatController.OnJoinChannelError += Raise.Event>( "foo", ChannelErrorCode.AlreadyExists); - + view.Received(1).ShowChannelExistsError(true); view.Received(1).DisableCreateButton(); } @@ -226,7 +226,7 @@ public void HideWhenClosesView() view.ClearReceivedCalls(); view.OnClose += Raise.Event(); - + view.Received(1).Hide(); } @@ -238,11 +238,11 @@ public void ShowTooShortError() view.ClearReceivedCalls(); view.OnChannelNameUpdated += Raise.Event>("df"); - + view.Received(1).ShowTooShortError(); view.Received(1).DisableCreateButton(); } - + [TestCase("cha nnel")] [TestCase("cha$nnel")] [TestCase("channel_")] @@ -254,9 +254,9 @@ public void ShowFormatError(string name) view.ClearReceivedCalls(); view.OnChannelNameUpdated += Raise.Event>(name); - + view.Received(1).ShowWrongFormatError(); view.Received(1).DisableCreateButton(); } } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/LeaveChannelConfirmationWindowComponentViewShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/LeaveChannelConfirmationWindowComponentViewShould.cs index 9e9edc3540..3deabc4a8d 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/LeaveChannelConfirmationWindowComponentViewShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/LeaveChannelConfirmationWindowComponentViewShould.cs @@ -2,7 +2,7 @@ using UnityEditor; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class LeaveChannelConfirmationWindowComponentViewShould { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/LeaveChannelConfirmationWindowControllerShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/LeaveChannelConfirmationWindowControllerShould.cs index f5f01d0959..539854cc8f 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/LeaveChannelConfirmationWindowControllerShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/LeaveChannelConfirmationWindowControllerShould.cs @@ -2,7 +2,7 @@ using NSubstitute; using NUnit.Framework; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class LeaveChannelConfirmationWindowControllerShould { @@ -65,4 +65,4 @@ public void RaiseOnConfirmJoinCorrectly() chatController.Received(1).LeaveChannel(testChannelId); } } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/NearbyMembersHUDControllerShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/NearbyMembersHUDControllerShould.cs index 8a8a53f60d..1bf5227f46 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/NearbyMembersHUDControllerShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/NearbyMembersHUDControllerShould.cs @@ -1,119 +1,121 @@ -using DCL; -using DCL.Chat.HUD; +using DCL.Social.Chat; using NSubstitute; using NUnit.Framework; using UnityEngine; -public class NearbyMembersHUDControllerShould +namespace DCL.Social.Chat { - private NearbyMembersHUDController nearbyMembersHUDController; - private IChannelMembersComponentView channelMembersComponentView; - private IUserProfileBridge userProfileBridge; - private DataStore_Player playerDataStore; - private UserProfile testOwnUserProfile; - private UserProfile testUserProfile; - - [SetUp] - public void SetUp() + public class NearbyMembersHUDControllerShould { - channelMembersComponentView = Substitute.For(); - playerDataStore = new DataStore_Player(); - testOwnUserProfile = ScriptableObject.CreateInstance(); - testOwnUserProfile.UpdateData(new UserProfileModel - { - userId = "ownTestId", - name = "ownTestName", - snapshots = new UserProfileModel.Snapshots { face256 = "ownTestFace256Url" }, - }); - testUserProfile = ScriptableObject.CreateInstance(); - testUserProfile.UpdateData(new UserProfileModel - { - userId = "testId", - name = "testName", - snapshots = new UserProfileModel.Snapshots { face256 = "testFace256Url" }, - }); - userProfileBridge = Substitute.For(); - userProfileBridge.Get(testUserProfile.userId).Returns(testUserProfile); - userProfileBridge.GetOwn().Returns(testOwnUserProfile); - nearbyMembersHUDController = new NearbyMembersHUDController(channelMembersComponentView, playerDataStore, userProfileBridge); - } + private NearbyMembersHUDController nearbyMembersHUDController; + private IChannelMembersComponentView channelMembersComponentView; + private IUserProfileBridge userProfileBridge; + private DataStore_Player playerDataStore; + private UserProfile testOwnUserProfile; + private UserProfile testUserProfile; - [TearDown] - public void TearDown() - { - nearbyMembersHUDController.Dispose(); - Object.Destroy(testOwnUserProfile); - Object.Destroy(testUserProfile); - } + [SetUp] + public void SetUp() + { + channelMembersComponentView = Substitute.For(); + playerDataStore = new DataStore_Player(); + testOwnUserProfile = ScriptableObject.CreateInstance(); + testOwnUserProfile.UpdateData(new UserProfileModel + { + userId = "ownTestId", + name = "ownTestName", + snapshots = new UserProfileModel.Snapshots { face256 = "ownTestFace256Url" }, + }); + testUserProfile = ScriptableObject.CreateInstance(); + testUserProfile.UpdateData(new UserProfileModel + { + userId = "testId", + name = "testName", + snapshots = new UserProfileModel.Snapshots { face256 = "testFace256Url" }, + }); + userProfileBridge = Substitute.For(); + userProfileBridge.Get(testUserProfile.userId).Returns(testUserProfile); + userProfileBridge.GetOwn().Returns(testOwnUserProfile); + nearbyMembersHUDController = new NearbyMembersHUDController(channelMembersComponentView, playerDataStore, userProfileBridge); + } - [Test] - public void InitializeCorrectly() - { - // Assert - Assert.AreEqual(channelMembersComponentView, nearbyMembersHUDController.View); - } + [TearDown] + public void TearDown() + { + nearbyMembersHUDController.Dispose(); + Object.Destroy(testOwnUserProfile); + Object.Destroy(testUserProfile); + } - [Test] - [TestCase(true)] - [TestCase(false)] - public void SetVisibilityCorrectly(bool isVisible) - { - // Act - nearbyMembersHUDController.SetVisibility(isVisible); + [Test] + public void InitializeCorrectly() + { + // Assert + Assert.AreEqual(channelMembersComponentView, nearbyMembersHUDController.View); + } - // Assert - if (isVisible) + [Test] + [TestCase(true)] + [TestCase(false)] + public void SetVisibilityCorrectly(bool isVisible) { - channelMembersComponentView.Received(1).Show(); - channelMembersComponentView.Received(1).ClearSearchInput(false); - channelMembersComponentView.Received(1).ClearAllEntries(); + // Act + nearbyMembersHUDController.SetVisibility(isVisible); + + // Assert + if (isVisible) + { + channelMembersComponentView.Received(1).Show(); + channelMembersComponentView.Received(1).ClearSearchInput(false); + channelMembersComponentView.Received(1).ClearAllEntries(); + } + else + channelMembersComponentView.Received(1).Hide(); } - else - channelMembersComponentView.Received(1).Hide(); - } - [Test] - public void ClearSearchCorrectly() - { - // Act - nearbyMembersHUDController.ClearSearch(); + [Test] + public void ClearSearchCorrectly() + { + // Act + nearbyMembersHUDController.ClearSearch(); - // Assert - channelMembersComponentView.Received(1).ClearSearchInput(); - } + // Assert + channelMembersComponentView.Received(1).ClearSearchInput(); + } - [Test] - public void AddPlayerCorrectly() - { - // Arrange - ChannelMemberEntryModel testChannelMemberEntryModel = new ChannelMemberEntryModel + [Test] + public void AddPlayerCorrectly() { - isOnline = true, - thumnailUrl = testUserProfile.face256SnapshotURL, - userId = testUserProfile.userId, - userName = testUserProfile.userName, - isOptionsButtonHidden = false, - }; + // Arrange + ChannelMemberEntryModel testChannelMemberEntryModel = new ChannelMemberEntryModel + { + isOnline = true, + thumnailUrl = testUserProfile.face256SnapshotURL, + userId = testUserProfile.userId, + userName = testUserProfile.userName, + isOptionsButtonHidden = false, + }; - // Act - nearbyMembersHUDController.SetVisibility(true); - playerDataStore.otherPlayers.Add(testUserProfile.userId, new Player { id = testUserProfile.userId }); + // Act + nearbyMembersHUDController.SetVisibility(true); + playerDataStore.otherPlayers.Add(testUserProfile.userId, new Player { id = testUserProfile.userId }); - // Assert - channelMembersComponentView.Set(testChannelMemberEntryModel); - } + // Assert + channelMembersComponentView.Set(testChannelMemberEntryModel); + } - [Test] - public void RemovePlayerCorrectly() - { - // Arrange - AddPlayerCorrectly(); + [Test] + public void RemovePlayerCorrectly() + { + // Arrange + AddPlayerCorrectly(); - // Act - nearbyMembersHUDController.SetVisibility(true); - playerDataStore.otherPlayers.Remove(testUserProfile.userId); + // Act + nearbyMembersHUDController.SetVisibility(true); + playerDataStore.otherPlayers.Remove(testUserProfile.userId); - // Assert - channelMembersComponentView.Remove(testUserProfile.userId); + // Assert + channelMembersComponentView.Remove(testUserProfile.userId); + } } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PrivateChatEntryShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PrivateChatEntryShould.cs index 8dfd2d4994..d91547e5d9 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PrivateChatEntryShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PrivateChatEntryShould.cs @@ -1,93 +1,95 @@ -using DCL; -using DCL.Chat.HUD; +using DCL.Social.Chat; using NSubstitute; using NUnit.Framework; using UnityEditor; using UnityEngine; -public class PrivateChatEntryShould +namespace DCL.Social.Chat { - private PrivateChatEntry view; - private UserContextMenu userContextMenu; - - [SetUp] - public void SetUp() + public class PrivateChatEntryShould { - view = Object.Instantiate( - AssetDatabase.LoadAssetAtPath( - "Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/WhisperChannelElement.prefab")); + private PrivateChatEntry view; + private UserContextMenu userContextMenu; - userContextMenu = Substitute.ForPartsOf(); - view.Initialize(Substitute.For(), userContextMenu, new DataStore_Mentions()); - } + [SetUp] + public void SetUp() + { + view = Object.Instantiate( + AssetDatabase.LoadAssetAtPath( + "Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/WhisperChannelElement.prefab")); - [TearDown] - public void TearDown() - { - view.Dispose(); - } + userContextMenu = Substitute.ForPartsOf(); + view.Initialize(Substitute.For(), userContextMenu, new DataStore_Mentions()); + } - [TestCase(true, false)] - [TestCase(false, false)] - [TestCase(false, true)] - [TestCase(true, true)] - public void Configure(bool online, bool blocked) - { - var model = new PrivateChatEntryModel("userId", "name", "hello", "someUrl", blocked, online, - 0); - model.imageFetchingEnabled = false; - view.Configure(model); + [TearDown] + public void TearDown() + { + view.Dispose(); + } - Assert.AreEqual("name", view.userNameLabel.text); - Assert.AreEqual("hello", view.lastMessageLabel.text); - Assert.AreEqual(blocked, view.blockedContainer.activeSelf); - Assert.AreEqual(online && !blocked, view.onlineStatusContainer.activeSelf); - Assert.AreEqual(!online && !blocked, view.offlineStatusContainer.activeSelf); - } + [TestCase(true, false)] + [TestCase(false, false)] + [TestCase(false, true)] + [TestCase(true, true)] + public void Configure(bool online, bool blocked) + { + var model = new PrivateChatEntryModel("userId", "name", "hello", "someUrl", blocked, online, + 0); + model.imageFetchingEnabled = false; + view.Configure(model); - [Test] - public void TriggerOpenChat() - { - var called = false; - view.OnOpenChat += entry => called = true; + Assert.AreEqual("name", view.userNameLabel.text); + Assert.AreEqual("hello", view.lastMessageLabel.text); + Assert.AreEqual(blocked, view.blockedContainer.activeSelf); + Assert.AreEqual(online && !blocked, view.onlineStatusContainer.activeSelf); + Assert.AreEqual(!online && !blocked, view.offlineStatusContainer.activeSelf); + } - view.openChatButton.onClick.Invoke(); + [Test] + public void TriggerOpenChat() + { + var called = false; + view.OnOpenChat += entry => called = true; - Assert.IsTrue(called); - } + view.openChatButton.onClick.Invoke(); - [Test] - public void EnableAvatarSnapshotFetching() - { - var picture = Substitute.ForPartsOf(); - picture.WhenForAnyArgs(component => component.Configure(default)).DoNotCallBase(); - view.picture = picture; - var model = new PrivateChatEntryModel("userId", "name", "hello", "someUrl", false, true, 0) + Assert.IsTrue(called); + } + + [Test] + public void EnableAvatarSnapshotFetching() { - imageFetchingEnabled = false - }; - view.Configure(model); + var picture = Substitute.ForPartsOf(); + picture.WhenForAnyArgs(component => component.Configure(default)).DoNotCallBase(); + view.picture = picture; + var model = new PrivateChatEntryModel("userId", "name", "hello", "someUrl", false, true, 0) + { + imageFetchingEnabled = false + }; + view.Configure(model); - view.EnableAvatarSnapshotFetching(); + view.EnableAvatarSnapshotFetching(); - picture.Received(1).Configure(Arg.Is(im => im.uri == "someUrl")); - } + picture.Received(1).Configure(Arg.Is(im => im.uri == "someUrl")); + } - [Test] - public void DisableAvatarSnapshotFetching() - { - var picture = Substitute.ForPartsOf(); - picture.WhenForAnyArgs(component => component.Configure(default)).DoNotCallBase(); - picture.WhenForAnyArgs(component => component.SetImage((string) default)).DoNotCallBase(); - view.picture = picture; - var model = new PrivateChatEntryModel("userId", "name", "hello", "someUrl", false, true, 0) + [Test] + public void DisableAvatarSnapshotFetching() { - imageFetchingEnabled = true - }; - view.Configure(model); + var picture = Substitute.ForPartsOf(); + picture.WhenForAnyArgs(component => component.Configure(default)).DoNotCallBase(); + picture.WhenForAnyArgs(component => component.SetImage((string) default)).DoNotCallBase(); + view.picture = picture; + var model = new PrivateChatEntryModel("userId", "name", "hello", "someUrl", false, true, 0) + { + imageFetchingEnabled = true + }; + view.Configure(model); - view.DisableAvatarSnapshotFetching(); + view.DisableAvatarSnapshotFetching(); - picture.Received(1).SetImage(Arg.Is(s => string.IsNullOrEmpty(s))); + picture.Received(1).SetImage(Arg.Is(s => string.IsNullOrEmpty(s))); + } } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PromoteChannelsToastComponentControllerShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PromoteChannelsToastComponentControllerShould.cs index 89e627b982..b7a01b32c2 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PromoteChannelsToastComponentControllerShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PromoteChannelsToastComponentControllerShould.cs @@ -1,75 +1,77 @@ -using DCL; -using DCL.Chat.HUD; +using DCL.Social.Chat; using DCL.Helpers; using NSubstitute; using NUnit.Framework; using System; -public class PromoteChannelsToastComponentControllerShould +namespace DCL.Social.Chat { - private PromoteChannelsToastComponentController promoteChannelsToastController; - private IPromoteChannelsToastComponentView promoteChannelsToastView; - private IPlayerPrefs playerPrefs; - private DataStore dataStore; - private RendererState rendererState; - - [SetUp] - public void SetUp() + public class PromoteChannelsToastComponentControllerShould { - promoteChannelsToastView = Substitute.For(); - playerPrefs = Substitute.For(); - dataStore = new DataStore(); - rendererState = new RendererState(); - - promoteChannelsToastController = new PromoteChannelsToastComponentController( - promoteChannelsToastView, - playerPrefs, - dataStore, - rendererState); -} - - [TearDown] - public void TearDown() - { - promoteChannelsToastController.Dispose(); - } + private PromoteChannelsToastComponentController promoteChannelsToastController; + private IPromoteChannelsToastComponentView promoteChannelsToastView; + private IPlayerPrefs playerPrefs; + private DataStore dataStore; + private RendererState rendererState; - [Test] - [TestCase(true)] - [TestCase(false)] - public void ShowToastCorrectly(bool alreadyDismissed) - { - // Arrange - playerPrefs.GetBool(PromoteChannelsToastComponentController.PLAYER_PREFS_PROMOTE_CHANNELS_TOAS_DISMISSED_KEY, false) - .Returns(alreadyDismissed); + [SetUp] + public void SetUp() + { + promoteChannelsToastView = Substitute.For(); + playerPrefs = Substitute.For(); + dataStore = new DataStore(); + rendererState = new RendererState(); - // Action - rendererState.Set(true); + promoteChannelsToastController = new PromoteChannelsToastComponentController( + promoteChannelsToastView, + playerPrefs, + dataStore, + rendererState); + } - // Assert - if (alreadyDismissed) + [TearDown] + public void TearDown() { - Assert.IsFalse(dataStore.channels.isPromoteToastVisible.Get()); - promoteChannelsToastView.Received().Hide(); + promoteChannelsToastController.Dispose(); } - else + + [Test] + [TestCase(true)] + [TestCase(false)] + public void ShowToastCorrectly(bool alreadyDismissed) { - Assert.IsTrue(dataStore.channels.isPromoteToastVisible.Get()); - promoteChannelsToastView.Received().Show(); + // Arrange + playerPrefs.GetBool(PromoteChannelsToastComponentController.PLAYER_PREFS_PROMOTE_CHANNELS_TOAS_DISMISSED_KEY, false) + .Returns(alreadyDismissed); + + // Action + rendererState.Set(true); + + // Assert + if (alreadyDismissed) + { + Assert.IsFalse(dataStore.channels.isPromoteToastVisible.Get()); + promoteChannelsToastView.Received().Hide(); + } + else + { + Assert.IsTrue(dataStore.channels.isPromoteToastVisible.Get()); + promoteChannelsToastView.Received().Show(); + } } - } - [Test] - public void DismissToastCorrectly() - { - // Action - promoteChannelsToastView.OnClose += Raise.Event(); + [Test] + public void DismissToastCorrectly() + { + // Action + promoteChannelsToastView.OnClose += Raise.Event(); - // Assert - Assert.IsFalse(dataStore.channels.isPromoteToastVisible.Get()); - promoteChannelsToastView.Received().Hide(); - playerPrefs.Received().Set(PromoteChannelsToastComponentController.PLAYER_PREFS_PROMOTE_CHANNELS_TOAS_DISMISSED_KEY, true); - playerPrefs.Received().Save(); + // Assert + Assert.IsFalse(dataStore.channels.isPromoteToastVisible.Get()); + promoteChannelsToastView.Received().Hide(); + playerPrefs.Received().Set(PromoteChannelsToastComponentController.PLAYER_PREFS_PROMOTE_CHANNELS_TOAS_DISMISSED_KEY, true); + playerPrefs.Received().Save(); + } } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PromoteChannelsToastComponentViewShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PromoteChannelsToastComponentViewShould.cs index f5010c04c1..509769ee4f 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PromoteChannelsToastComponentViewShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PromoteChannelsToastComponentViewShould.cs @@ -1,63 +1,65 @@ -using DCL.Chat.HUD; -using NUnit.Framework; +using NUnit.Framework; using UnityEditor; using UnityEngine; -public class PromoteChannelsToastComponentViewShould +namespace DCL.Social.Chat { - private PromoteChannelsToastComponentView promoteChannelsToastView; - - [SetUp] - public void SetUp() + public class PromoteChannelsToastComponentViewShould { - promoteChannelsToastView = Object.Instantiate( - AssetDatabase.LoadAssetAtPath( - "Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Addressables/PromoteChannelsHUD.prefab")); - } + private PromoteChannelsToastComponentView promoteChannelsToastView; - [TearDown] - public void TearDown() - { - promoteChannelsToastView.Dispose(); - } + [SetUp] + public void SetUp() + { + promoteChannelsToastView = Object.Instantiate( + AssetDatabase.LoadAssetAtPath( + "Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Addressables/PromoteChannelsHUD.prefab")); + } - [Test] - public void ShowToastCorrectly() - { - // Arrange - promoteChannelsToastView.gameObject.SetActive(false); + [TearDown] + public void TearDown() + { + promoteChannelsToastView.Dispose(); + } - // Act - promoteChannelsToastView.Show(); + [Test] + public void ShowToastCorrectly() + { + // Arrange + promoteChannelsToastView.gameObject.SetActive(false); - // Assert - Assert.IsTrue(promoteChannelsToastView.gameObject.activeSelf); - } + // Act + promoteChannelsToastView.Show(); - [Test] - public void HideToastCorrectly() - { - // Arrange - promoteChannelsToastView.gameObject.SetActive(true); + // Assert + Assert.IsTrue(promoteChannelsToastView.gameObject.activeSelf); + } - // Act - promoteChannelsToastView.Hide(); + [Test] + public void HideToastCorrectly() + { + // Arrange + promoteChannelsToastView.gameObject.SetActive(true); - // Assert - Assert.IsFalse(promoteChannelsToastView.gameObject.activeSelf); - } + // Act + promoteChannelsToastView.Hide(); - [Test] - public void ClickOnCloseCorrectly() - { - // Arrange - bool isClosed = false; - promoteChannelsToastView.OnClose += () => isClosed = true; + // Assert + Assert.IsFalse(promoteChannelsToastView.gameObject.activeSelf); + } + + [Test] + public void ClickOnCloseCorrectly() + { + // Arrange + bool isClosed = false; + promoteChannelsToastView.OnClose += () => isClosed = true; - // Act - promoteChannelsToastView.closeButton.onClick.Invoke(); + // Act + promoteChannelsToastView.closeButton.onClick.Invoke(); - // Assert - Assert.IsTrue(isClosed); + // Assert + Assert.IsTrue(isClosed); + } } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PublicChannelEntryShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PublicChannelEntryShould.cs index 79abeff24c..853e5660e8 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PublicChannelEntryShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PublicChannelEntryShould.cs @@ -1,56 +1,58 @@ -using DCL; -using DCL.Chat.HUD; +using DCL.Social.Chat; using NSubstitute; using NUnit.Framework; using UnityEditor; using UnityEngine; -public class PublicChannelEntryShould +namespace DCL.Social.Chat { - private PublicChatEntry view; - - [SetUp] - public void SetUp() - { - view = Object.Instantiate( - AssetDatabase.LoadAssetAtPath( - "Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/PublicChannelElement.prefab")); - - view.Initialize(Substitute.For(), new DataStore_Mentions()); - } - - [TearDown] - public void TearDown() - { - view.Dispose(); - } - - [Test] - [TestCase(true)] - [TestCase(false)] - public void Configure(bool showOnlyOnlineMembers) - { - view.Configure(new PublicChatEntryModel("nearby", "nearby", true, 4, showOnlyOnlineMembers, false)); - view.nameLabel.text = "#nearby"; - Assert.IsFalse(view.muteNotificationsToggle.isOn); - Assert.AreEqual($"4 members {(showOnlyOnlineMembers ? "online" : "joined")}", view.memberCountLabel.text); - } - - [Test] - public void TriggerOpenChat() - { - var called = false; - view.OnOpenChat += entry => called = true; - - view.openChatButton.onClick.Invoke(); - - Assert.IsTrue(called); - } - - [Test] - public void ConfigureAsMuted() + public class PublicChannelEntryShould { - view.Configure(new PublicChatEntryModel("nearby", "nearby", true, 0, false, true)); - Assert.IsTrue(view.muteNotificationsToggle.isOn); + private PublicChatEntry view; + + [SetUp] + public void SetUp() + { + view = Object.Instantiate( + AssetDatabase.LoadAssetAtPath( + "Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/PublicChannelElement.prefab")); + + view.Initialize(Substitute.For(), new DataStore_Mentions()); + } + + [TearDown] + public void TearDown() + { + view.Dispose(); + } + + [Test] + [TestCase(true)] + [TestCase(false)] + public void Configure(bool showOnlyOnlineMembers) + { + view.Configure(new PublicChatEntryModel("nearby", "nearby", true, 4, showOnlyOnlineMembers, false)); + view.nameLabel.text = "#nearby"; + Assert.IsFalse(view.muteNotificationsToggle.isOn); + Assert.AreEqual($"4 members {(showOnlyOnlineMembers ? "online" : "joined")}", view.memberCountLabel.text); + } + + [Test] + public void TriggerOpenChat() + { + var called = false; + view.OnOpenChat += entry => called = true; + + view.openChatButton.onClick.Invoke(); + + Assert.IsTrue(called); + } + + [Test] + public void ConfigureAsMuted() + { + view.Configure(new PublicChatEntryModel("nearby", "nearby", true, 0, false, true)); + Assert.IsTrue(view.muteNotificationsToggle.isOn); + } } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PublicChatEntryShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PublicChatEntryShould.cs index c89435b73b..ed6cffd3fc 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PublicChatEntryShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PublicChatEntryShould.cs @@ -4,7 +4,7 @@ using UnityEditor.VersionControl; using UnityEngine; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class PublicChatEntryShould { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PublicChatWindowComponentViewShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PublicChatWindowComponentViewShould.cs index af004ec61f..32f9d54313 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PublicChatWindowComponentViewShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PublicChatWindowComponentViewShould.cs @@ -2,120 +2,123 @@ using UnityEditor; using UnityEngine; -public class PublicChatWindowComponentViewShould +namespace DCL.Social.Chat { - private PublicChatWindowComponentView view; - - [SetUp] - public void SetUp() + public class PublicChatWindowComponentViewShould { - view = Object.Instantiate( - AssetDatabase.LoadAssetAtPath( - "Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Addressables/NearbyChatChannelHUD.prefab")); - } + private PublicChatWindowComponentView view; - [TearDown] - public void TearDown() - { - view.Dispose(); - } + [SetUp] + public void SetUp() + { + view = Object.Instantiate( + AssetDatabase.LoadAssetAtPath( + "Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Addressables/NearbyChatChannelHUD.prefab")); + } - [Test] - public void Show() - { - view.Show(); + [TearDown] + public void TearDown() + { + view.Dispose(); + } - Assert.IsTrue(view.gameObject.activeSelf); - } + [Test] + public void Show() + { + view.Show(); - [Test] - public void Hide() - { - view.Hide(); + Assert.IsTrue(view.gameObject.activeSelf); + } - Assert.IsFalse(view.gameObject.activeSelf); - } + [Test] + public void Hide() + { + view.Hide(); - [Test] - public void Configure() - { - view.Configure(new PublicChatModel("nearby", "nearby", "any description", true, 0, false, true)); + Assert.IsFalse(view.gameObject.activeSelf); + } - Assert.AreEqual("~nearby", view.nameLabel.text); - Assert.IsFalse(view.muteToggle.isOn); - } + [Test] + public void Configure() + { + view.Configure(new PublicChatModel("nearby", "nearby", "any description", true, 0, false, true)); - [Test] - public void ConfigureAsMuted() - { - view.Configure(new PublicChatModel("nearby", "nearby", "any description", true, 0, true, true)); + Assert.AreEqual("~nearby", view.nameLabel.text); + Assert.IsFalse(view.muteToggle.isOn); + } - Assert.AreEqual("~nearby", view.nameLabel.text); - Assert.IsTrue(view.muteToggle.isOn); - } + [Test] + public void ConfigureAsMuted() + { + view.Configure(new PublicChatModel("nearby", "nearby", "any description", true, 0, true, true)); - [Test] - public void TriggerClose() - { - var called = false; - view.OnClose += () => called = true; + Assert.AreEqual("~nearby", view.nameLabel.text); + Assert.IsTrue(view.muteToggle.isOn); + } - view.closeButton.onClick.Invoke(); + [Test] + public void TriggerClose() + { + var called = false; + view.OnClose += () => called = true; - Assert.IsTrue(called); - } + view.closeButton.onClick.Invoke(); - [Test] - public void TriggerBack() - { - var called = false; - view.OnBack += () => called = true; + Assert.IsTrue(called); + } - view.backButton.onClick.Invoke(); + [Test] + public void TriggerBack() + { + var called = false; + view.OnBack += () => called = true; - Assert.IsTrue(called); - } + view.backButton.onClick.Invoke(); - [Test] - public void TriggerFocusWhenWindowIsClicked() - { - var clicked = false; - view.OnClickOverWindow += () => clicked = true; + Assert.IsTrue(called); + } - view.OnPointerDown(null); + [Test] + public void TriggerFocusWhenWindowIsClicked() + { + var clicked = false; + view.OnClickOverWindow += () => clicked = true; - Assert.IsTrue(clicked); - } + view.OnPointerDown(null); - [Test] - public void TriggerFocusWhenWindowIsHovered() - { - var focused = false; - view.OnFocused += f => focused = f; + Assert.IsTrue(clicked); + } - view.OnPointerEnter(null); + [Test] + public void TriggerFocusWhenWindowIsHovered() + { + var focused = false; + view.OnFocused += f => focused = f; - Assert.IsTrue(focused); - } + view.OnPointerEnter(null); - [Test] - public void TriggerUnfocusWhenPointerExits() - { - var focused = true; - view.OnFocused += f => focused = f; + Assert.IsTrue(focused); + } - view.OnPointerExit(null); + [Test] + public void TriggerUnfocusWhenPointerExits() + { + var focused = true; + view.OnFocused += f => focused = f; - Assert.IsFalse(focused); - } + view.OnPointerExit(null); - [Test] - public void UpdateMembersCountCorrectly() - { - var testMembersCount = 4; + Assert.IsFalse(focused); + } + + [Test] + public void UpdateMembersCountCorrectly() + { + var testMembersCount = 4; - view.UpdateMembersCount(testMembersCount); + view.UpdateMembersCount(testMembersCount); - Assert.AreEqual(testMembersCount.ToString(), view.memberCountLabel.text); + Assert.AreEqual(testMembersCount.ToString(), view.memberCountLabel.text); + } } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PublicChatWindowControllerShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PublicChatWindowControllerShould.cs index 72d5fb6962..be6a3a8d9d 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PublicChatWindowControllerShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/PublicChatWindowControllerShould.cs @@ -1,10 +1,7 @@ using Cysharp.Threading.Tasks; -using DCL; using DCL.Chat; -using DCL.Chat.HUD; using DCL.Interface; using DCL.ProfanityFiltering; -using DCL.Social.Chat; using DCL.Social.Chat.Mentions; using NSubstitute; using NUnit.Framework; @@ -15,302 +12,306 @@ using UnityEngine; using Channel = DCL.Chat.Channels.Channel; -public class PublicChatWindowControllerShould +namespace DCL.Social.Chat { - private const string OWN_USER_ID = "my-user-id"; - private const string TEST_USER_ID = "otherUserId"; - private const string TEST_USER_NAME = "otherUserName"; - private const string CHANNEL_ID = "nearby"; - - private PublicChatWindowController controller; - private IPublicChatWindowView view; - private IChatHUDComponentView internalChatView; - private IChatController chatController; - private IUserProfileBridge userProfileBridge; - private IMouseCatcher mouseCatcher; - private DataStore dataStore; - private IChatMentionSuggestionProvider mentionSuggestionProvider; - - [SetUp] - public void SetUp() + public class PublicChatWindowControllerShould { - GivenOwnProfile(); - GivenUser(TEST_USER_ID, TEST_USER_NAME); - - chatController = Substitute.For(); - - chatController.GetAllocatedChannel(CHANNEL_ID) - .Returns(new Channel(CHANNEL_ID, CHANNEL_ID, - 0, 1, true, false, "")); - - mouseCatcher = Substitute.For(); - dataStore = new DataStore(); - dataStore.featureFlags.flags.Set(new FeatureFlag { flags = { ["chat_mentions_enabled"] = true } }); - mentionSuggestionProvider = Substitute.For(); - - controller = new PublicChatWindowController( - chatController, - userProfileBridge, - dataStore, - new RegexProfanityFilter(Substitute.For()), - mouseCatcher, - mentionSuggestionProvider, - Substitute.For()); - - view = Substitute.For(); - internalChatView = Substitute.For(); - view.ChatHUD.Returns(internalChatView); - controller.Initialize(view, false); - controller.Setup(CHANNEL_ID); - } - - [TearDown] - public void TearDown() - { - controller.Dispose(); - } - - [Test] - public void AddEntryWhenMessageReceived() - { - var msg = new ChatMessage + private const string OWN_USER_ID = "my-user-id"; + private const string TEST_USER_ID = "otherUserId"; + private const string TEST_USER_NAME = "otherUserName"; + private const string CHANNEL_ID = "nearby"; + + private PublicChatWindowController controller; + private IPublicChatWindowView view; + private IChatHUDComponentView internalChatView; + private IChatController chatController; + private IUserProfileBridge userProfileBridge; + private IMouseCatcher mouseCatcher; + private DataStore dataStore; + private IChatMentionSuggestionProvider mentionSuggestionProvider; + + [SetUp] + public void SetUp() { - messageType = ChatMessage.Type.PUBLIC, - body = "test message", - sender = TEST_USER_ID - }; - - chatController.OnAddMessage += Raise.Event>(new[] { msg }); - - internalChatView.Received(1) - .SetEntry(Arg.Is(model => - model.messageType == msg.messageType - && model.bodyText == $"{msg.body}" - && model.senderId == msg.sender)); - } + GivenOwnProfile(); + GivenUser(TEST_USER_ID, TEST_USER_NAME); + + chatController = Substitute.For(); + + chatController.GetAllocatedChannel(CHANNEL_ID) + .Returns(new Channel(CHANNEL_ID, CHANNEL_ID, + 0, 1, true, false, "")); + + mouseCatcher = Substitute.For(); + dataStore = new DataStore(); + dataStore.featureFlags.flags.Set(new FeatureFlag { flags = { ["chat_mentions_enabled"] = true } }); + mentionSuggestionProvider = Substitute.For(); + + controller = new PublicChatWindowController( + chatController, + userProfileBridge, + dataStore, + new RegexProfanityFilter(Substitute.For()), + mouseCatcher, + mentionSuggestionProvider, + Substitute.For(), + Substitute.For()); + + view = Substitute.For(); + internalChatView = Substitute.For(); + view.ChatHUD.Returns(internalChatView); + controller.Initialize(view, false); + controller.Setup(CHANNEL_ID); + } + + [TearDown] + public void TearDown() + { + controller.Dispose(); + } - [Test] - public void FilterMessageWhenIsTooOld() - { - var msg = new ChatMessage + [Test] + public void AddEntryWhenMessageReceived() { - messageType = ChatMessage.Type.PRIVATE, - body = "test message", - sender = TEST_USER_ID, - timestamp = 100 - }; + var msg = new ChatMessage + { + messageType = ChatMessage.Type.PUBLIC, + body = "test message", + sender = TEST_USER_ID + }; + + chatController.OnAddMessage += Raise.Event>(new[] { msg }); + + internalChatView.Received(1) + .SetEntry(Arg.Is(model => + model.messageType == msg.messageType + && model.bodyText == $"{msg.body}" + && model.senderId == msg.sender)); + } + + [Test] + public void FilterMessageWhenIsTooOld() + { + var msg = new ChatMessage + { + messageType = ChatMessage.Type.PRIVATE, + body = "test message", + sender = TEST_USER_ID, + timestamp = 100 + }; - chatController.OnAddMessage += Raise.Event>(new[] { msg }); + chatController.OnAddMessage += Raise.Event>(new[] { msg }); - internalChatView.DidNotReceiveWithAnyArgs().SetEntry(default); - } + internalChatView.DidNotReceiveWithAnyArgs().SetEntry(default); + } - [Test] - public void SendPublicMessage() - { - internalChatView.OnSendMessage += Raise.Event>(new ChatMessage - { body = "test message", messageType = ChatMessage.Type.PUBLIC }); - - chatController.Received(1) - .Send(Arg.Is(c => c.body == "test message" - && c.sender == OWN_USER_ID - && c.messageType == ChatMessage.Type.PUBLIC)); + [Test] + public void SendPublicMessage() + { + internalChatView.OnSendMessage += Raise.Event>(new ChatMessage + { body = "test message", messageType = ChatMessage.Type.PUBLIC }); - internalChatView.Received(1).ResetInputField(); - internalChatView.Received(1).FocusInputField(); - } + chatController.Received(1) + .Send(Arg.Is(c => c.body == "test message" + && c.sender == OWN_USER_ID + && c.messageType == ChatMessage.Type.PUBLIC)); - [Test] - public void SendPrivateMessage() - { - internalChatView.OnSendMessage += Raise.Event>(new ChatMessage - { body = "test message", messageType = ChatMessage.Type.PRIVATE, recipient = TEST_USER_ID }); + internalChatView.Received(1).ResetInputField(); + internalChatView.Received(1).FocusInputField(); + } - chatController.Received(1) - .Send(Arg.Is(c => c.body == $"/w {TEST_USER_ID} test message" - && c.sender == OWN_USER_ID - && c.messageType == ChatMessage.Type.PRIVATE - && c.recipient == TEST_USER_ID)); + [Test] + public void SendPrivateMessage() + { + internalChatView.OnSendMessage += Raise.Event>(new ChatMessage + { body = "test message", messageType = ChatMessage.Type.PRIVATE, recipient = TEST_USER_ID }); - internalChatView.Received(1).ResetInputField(); - internalChatView.Received(1).FocusInputField(); - } + chatController.Received(1) + .Send(Arg.Is(c => c.body == $"/w {TEST_USER_ID} test message" + && c.sender == OWN_USER_ID + && c.messageType == ChatMessage.Type.PRIVATE + && c.recipient == TEST_USER_ID)); - [Test] - public void CloseWhenButtonPressed() - { - var isViewActive = false; - view.When(v => v.Show()).Do(info => isViewActive = true); - view.When(v => v.Hide()).Do(info => isViewActive = false); - controller.OnClosed += () => isViewActive = false; - view.IsActive.Returns(info => isViewActive); + internalChatView.Received(1).ResetInputField(); + internalChatView.Received(1).FocusInputField(); + } - controller.SetVisibility(true); - Assert.IsTrue(view.IsActive); + [Test] + public void CloseWhenButtonPressed() + { + var isViewActive = false; + view.When(v => v.Show()).Do(info => isViewActive = true); + view.When(v => v.Hide()).Do(info => isViewActive = false); + controller.OnClosed += () => isViewActive = false; + view.IsActive.Returns(info => isViewActive); - controller.View.OnClose += Raise.Event(); - Assert.IsFalse(view.IsActive); - } + controller.SetVisibility(true); + Assert.IsTrue(view.IsActive); - [Test] - public void ClosePanelWhenMouseIsLocked() - { - controller.SetVisibility(true); + controller.View.OnClose += Raise.Event(); + Assert.IsFalse(view.IsActive); + } - mouseCatcher.OnMouseLock += Raise.Event(); + [Test] + public void ClosePanelWhenMouseIsLocked() + { + controller.SetVisibility(true); - view.Received(1).Hide(); - } + mouseCatcher.OnMouseLock += Raise.Event(); - [Test] - public void ShowPanel() - { - controller.SetVisibility(true); + view.Received(1).Hide(); + } - view.Received(1).Show(); - } + [Test] + public void ShowPanel() + { + controller.SetVisibility(true); - [Test] - public void MarkChannelMessagesAsReadCorrectly() - { - view.IsActive.Returns(true); + view.Received(1).Show(); + } - var msg = new ChatMessage + [Test] + public void MarkChannelMessagesAsReadCorrectly() { - messageType = ChatMessage.Type.PUBLIC, - body = "test message", - sender = TEST_USER_ID, - timestamp = 100 - }; + view.IsActive.Returns(true); - chatController.OnAddMessage += Raise.Event>(new[] { msg }); + var msg = new ChatMessage + { + messageType = ChatMessage.Type.PUBLIC, + body = "test message", + sender = TEST_USER_ID, + timestamp = 100 + }; - chatController.Received(1).MarkChannelMessagesAsSeen(CHANNEL_ID); - } + chatController.OnAddMessage += Raise.Event>(new[] { msg }); - [Test] - public void MarkAsSeenOnlyOnceWhenReceiveManyMessages() - { - view.IsActive.Returns(true); + chatController.Received(1).MarkChannelMessagesAsSeen(CHANNEL_ID); + } - var msg1 = new ChatMessage + [Test] + public void MarkAsSeenOnlyOnceWhenReceiveManyMessages() { - messageType = ChatMessage.Type.PUBLIC, - body = "test message", - sender = TEST_USER_ID, - timestamp = 100 - }; - - var msg2 = new ChatMessage + view.IsActive.Returns(true); + + var msg1 = new ChatMessage + { + messageType = ChatMessage.Type.PUBLIC, + body = "test message", + sender = TEST_USER_ID, + timestamp = 100 + }; + + var msg2 = new ChatMessage + { + messageType = ChatMessage.Type.PUBLIC, + body = "test message", + sender = TEST_USER_ID, + timestamp = 101 + }; + + chatController.OnAddMessage += Raise.Event>(new[] { msg1, msg2 }); + + chatController.Received(1).MarkChannelMessagesAsSeen(CHANNEL_ID); + } + + [Test] + public void MuteChannel() { - messageType = ChatMessage.Type.PUBLIC, - body = "test message", - sender = TEST_USER_ID, - timestamp = 101 - }; - - chatController.OnAddMessage += Raise.Event>(new[] { msg1, msg2 }); - - chatController.Received(1).MarkChannelMessagesAsSeen(CHANNEL_ID); - } - - [Test] - public void MuteChannel() - { - view.OnMuteChanged += Raise.Event>(true); + view.OnMuteChanged += Raise.Event>(true); - chatController.Received(1).MuteChannel(CHANNEL_ID); - } + chatController.Received(1).MuteChannel(CHANNEL_ID); + } - [Test] - public void UnmuteChannel() - { - view.OnMuteChanged += Raise.Event>(false); + [Test] + public void UnmuteChannel() + { + view.OnMuteChanged += Raise.Event>(false); - chatController.Received(1).UnmuteChannel(CHANNEL_ID); - } + chatController.Received(1).UnmuteChannel(CHANNEL_ID); + } - [Test] - public void RefreshChannelInformationWhenChannelUpdates() - { - view.ClearReceivedCalls(); + [Test] + public void RefreshChannelInformationWhenChannelUpdates() + { + view.ClearReceivedCalls(); + + chatController.OnChannelUpdated += Raise.Event>(new Channel(CHANNEL_ID, CHANNEL_ID, + 0, 1, true, true, "")); + + view.Received(1) + .Configure(Arg.Is(p => p.channelId == CHANNEL_ID + && p.name == CHANNEL_ID + && p.joined == true + && p.muted == true)); + } + + [Test] + [TestCase(true)] + [TestCase(false)] + public void CheckOwnPlayerMentionInNearByCorrectly(bool ownPlayerIsMentioned) + { + dataStore.mentions.ownPlayerMentionedInChannel.Set(null, false); - chatController.OnChannelUpdated += Raise.Event>(new Channel(CHANNEL_ID, CHANNEL_ID, - 0, 1, true, true, "")); + string testMessage = ownPlayerIsMentioned + ? $"Hi @{userProfileBridge.GetOwn().userName}" + : "test message"; - view.Received(1) - .Configure(Arg.Is(p => p.channelId == CHANNEL_ID - && p.name == CHANNEL_ID - && p.joined == true - && p.muted == true)); - } + view.IsActive.Returns(false); - [Test] - [TestCase(true)] - [TestCase(false)] - public void CheckOwnPlayerMentionInNearByCorrectly(bool ownPlayerIsMentioned) - { - dataStore.mentions.ownPlayerMentionedInChannel.Set(null, false); + var testMentionMessage = new ChatMessage + { + messageType = ChatMessage.Type.PUBLIC, + body = testMessage, + sender = TEST_USER_ID, + timestamp = 100, + recipient = null, + }; - string testMessage = ownPlayerIsMentioned - ? $"Hi @{userProfileBridge.GetOwn().userName}" - : "test message"; + chatController.OnAddMessage += Raise.Event>(new[] { testMentionMessage }); - view.IsActive.Returns(false); + Assert.AreEqual(ownPlayerIsMentioned ? ChatUtils.NEARBY_CHANNEL_ID : null, dataStore.mentions.ownPlayerMentionedInChannel.Get()); + } - var testMentionMessage = new ChatMessage + [TestCase("@", "")] + [TestCase("hey @f", "f")] + [TestCase("im super @dude", "dude")] + public void SuggestNearbyUsers(string text, string name) { - messageType = ChatMessage.Type.PUBLIC, - body = testMessage, - sender = TEST_USER_ID, - timestamp = 100, - recipient = null, - }; - - chatController.OnAddMessage += Raise.Event>(new[] { testMentionMessage }); - - Assert.AreEqual(ownPlayerIsMentioned ? ChatUtils.NEARBY_CHANNEL_ID : null, dataStore.mentions.ownPlayerMentionedInChannel.Get()); - } - - [TestCase("@", "")] - [TestCase("hey @f", "f")] - [TestCase("im super @dude", "dude")] - public void SuggestNearbyUsers(string text, string name) - { - mentionSuggestionProvider.GetNearbyProfilesStartingWith(Arg.Any(), Arg.Any(), Arg.Any()) - .Returns(UniTask.FromResult(new List())); + mentionSuggestionProvider.GetNearbyProfilesStartingWith(Arg.Any(), Arg.Any(), Arg.Any()) + .Returns(UniTask.FromResult(new List())); - internalChatView.OnMessageUpdated += Raise.Event>(text, 1); + internalChatView.OnMessageUpdated += Raise.Event>(text, 1); - mentionSuggestionProvider.Received(1).GetNearbyProfilesStartingWith(name, 5, Arg.Any()); - } + mentionSuggestionProvider.Received(1).GetNearbyProfilesStartingWith(name, 5, Arg.Any()); + } - private void GivenOwnProfile() - { - var ownProfileModel = new UserProfileModel + private void GivenOwnProfile() { - userId = OWN_USER_ID, - name = "NO_USER" - }; + var ownProfileModel = new UserProfileModel + { + userId = OWN_USER_ID, + name = "NO_USER" + }; - var ownUserProfile = ScriptableObject.CreateInstance(); - ownUserProfile.UpdateData(ownProfileModel); + var ownUserProfile = ScriptableObject.CreateInstance(); + ownUserProfile.UpdateData(ownProfileModel); - userProfileBridge = Substitute.For(); - userProfileBridge.GetOwn().Returns(ownUserProfile); - userProfileBridge.Get(ownProfileModel.userId).Returns(ownUserProfile); - } + userProfileBridge = Substitute.For(); + userProfileBridge.GetOwn().Returns(ownUserProfile); + userProfileBridge.Get(ownProfileModel.userId).Returns(ownUserProfile); + } - private void GivenUser(string userId, string name) - { - var testUserProfile = ScriptableObject.CreateInstance(); - - testUserProfile.UpdateData(new UserProfileModel + private void GivenUser(string userId, string name) { - userId = userId, - name = name - }); + var testUserProfile = ScriptableObject.CreateInstance(); + + testUserProfile.UpdateData(new UserProfileModel + { + userId = userId, + name = name + }); - userProfileBridge.Get(userId).Returns(testUserProfile); + userProfileBridge.Get(userId).Returns(testUserProfile); + } } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/SearchChannelsWindowComponentViewShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/SearchChannelsWindowComponentViewShould.cs index 31c5104d0b..db655f72c8 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/SearchChannelsWindowComponentViewShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/SearchChannelsWindowComponentViewShould.cs @@ -5,7 +5,7 @@ using UnityEngine; using UnityEngine.TestTools; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class SearchChannelsWindowComponentViewShould { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/SearchChannelsWindowControllerShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/SearchChannelsWindowControllerShould.cs index 89e32cb01b..8fbbe739d5 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/SearchChannelsWindowControllerShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/SearchChannelsWindowControllerShould.cs @@ -1,3 +1,4 @@ +using DCL.Chat; using System; using System.Collections; using DCL.Chat.Channels; @@ -7,7 +8,7 @@ using UnityEngine; using UnityEngine.TestTools; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class SearchChannelsWindowControllerShould { @@ -108,7 +109,7 @@ public IEnumerator LoadMoreChannels() view.Received(1).HideLoadingMore(); chatController.Received(1).GetChannels(SearchChannelsWindowController.LOAD_PAGE_SIZE, "page1"); } - + [UnityTest] public IEnumerator LoadMoreChannelsByName() { @@ -214,12 +215,12 @@ public void NavigateToChannelWhenIsRequested() var channel = new Channel(channelId, "name", 15, 11, true, false, "desc"); chatController.GetAllocatedChannel(channelId).Returns(channel); controller.SetVisibility(true); - + view.OnOpenChannel += Raise.Event>(channelId); - + Assert.AreEqual("channelId", dataStore.channels.channelToBeOpened.Get()); } - + [Test] public void DontNavigateToChannelWhenIsNotJoined() { @@ -227,10 +228,10 @@ public void DontNavigateToChannelWhenIsNotJoined() var channel = new Channel(channelId, "name", 15, 11, false, false, "desc"); chatController.GetAllocatedChannel(channelId).Returns(channel); controller.SetVisibility(true); - + view.OnOpenChannel += Raise.Event>(channelId); - + Assert.IsNull(dataStore.channels.channelToBeOpened.Get()); } } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/WorldChatWindowComponentViewShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/WorldChatWindowComponentViewShould.cs index 4a1276c83c..e050f28d28 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/WorldChatWindowComponentViewShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/WorldChatWindowComponentViewShould.cs @@ -1,6 +1,5 @@ -using DCL; using System.Collections; -using DCL.Chat.HUD; +using DCL.Social.Chat; using DCL.Interface; using NSubstitute; using NUnit.Framework; @@ -8,510 +7,513 @@ using UnityEngine; using UnityEngine.TestTools; -public class WorldChatWindowComponentViewShould +namespace DCL.Social.Chat { - private WorldChatWindowComponentView view; - - [SetUp] - public void SetUp() + public class WorldChatWindowComponentViewShould { - view = Object.Instantiate( - AssetDatabase.LoadAssetAtPath( - "Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Addressables/ConversationListHUD.prefab")); - - view.Initialize(Substitute.For(), new DataStore_Mentions()); - } + private WorldChatWindowComponentView view; - [TearDown] - public void TearDown() - { - view.Dispose(); - } + [SetUp] + public void SetUp() + { + view = Object.Instantiate( + AssetDatabase.LoadAssetAtPath( + "Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Addressables/ConversationListHUD.prefab")); - [Test] - public void Show() - { - view.Show(); + view.Initialize(Substitute.For(), new DataStore_Mentions()); + } - Assert.IsTrue(view.gameObject.activeSelf); - } - - [Test] - public void Hide() - { - view.Hide(); + [TearDown] + public void TearDown() + { + view.Dispose(); + } - Assert.IsFalse(view.gameObject.activeSelf); - } + [Test] + public void Show() + { + view.Show(); - [Test] - public void ShowChannelsLoading() - { - view.ShowChannelsLoading(); + Assert.IsTrue(view.gameObject.activeSelf); + } - Assert.IsTrue(view.channelsLoadingContainer.activeSelf); - Assert.IsFalse(view.publicChannelList.gameObject.activeSelf); - } + [Test] + public void Hide() + { + view.Hide(); - [Test] - public void HideChannelsLoading() - { - view.HideChannelsLoading(); + Assert.IsFalse(view.gameObject.activeSelf); + } - Assert.IsFalse(view.channelsLoadingContainer.activeSelf); - Assert.IsTrue(view.publicChannelList.gameObject.activeSelf); - } + [Test] + public void ShowChannelsLoading() + { + view.ShowChannelsLoading(); - [Test] - public void ShowPrivateChatsLoading() - { - view.ShowPrivateChatsLoading(); + Assert.IsTrue(view.channelsLoadingContainer.activeSelf); + Assert.IsFalse(view.publicChannelList.gameObject.activeSelf); + } - Assert.IsTrue(view.directChatsLoadingContainer.activeSelf); - Assert.IsFalse(view.directChatList.isVisible); - Assert.IsFalse(view.scroll.enabled); - } + [Test] + public void HideChannelsLoading() + { + view.HideChannelsLoading(); - [Test] - public void HidePrivateChatsLoading() - { - view.HidePrivateChatsLoading(); + Assert.IsFalse(view.channelsLoadingContainer.activeSelf); + Assert.IsTrue(view.publicChannelList.gameObject.activeSelf); + } - Assert.IsFalse(view.directChatsLoadingContainer.activeSelf); - Assert.IsTrue(view.directChatList.isVisible); - Assert.IsTrue(view.scroll.enabled); - } + [Test] + public void ShowPrivateChatsLoading() + { + view.ShowPrivateChatsLoading(); - [UnityTest] - public IEnumerator CreatePrivateChat() - { - const string userId = "userId"; - GivenPrivateChat(userId); - - Assert.AreEqual(0, view.directChatList.Count()); - Assert.AreEqual(0, view.searchResultsList.Count()); - Assert.AreEqual(0, view.publicChannelList.Count()); - - // direct chats are enqueued, then created in the next frame - yield return null; - - Assert.AreEqual(1, view.directChatList.Count()); - Assert.AreEqual(0, view.searchResultsList.Count()); - Assert.AreEqual(0, view.publicChannelList.Count()); - Assert.AreEqual("Direct Messages (1)", view.directChatsHeaderLabel.text); - Assert.AreEqual("Channels (0)", view.channelsHeaderLabel.text); - Assert.AreEqual("Results (0)", view.searchResultsHeaderLabel.text); - Assert.IsNotNull(view.directChatList.Get(userId)); - } + Assert.IsTrue(view.directChatsLoadingContainer.activeSelf); + Assert.IsFalse(view.directChatList.isVisible); + Assert.IsFalse(view.scroll.enabled); + } - [UnityTest] - public IEnumerator CreateManyPrivateChats() - { - GivenPrivateChat("pepe"); - GivenPrivateChat("bleh"); - - yield return null; - - Assert.AreEqual(2, view.directChatList.Count()); - Assert.AreEqual(0, view.searchResultsList.Count()); - Assert.AreEqual(0, view.publicChannelList.Count()); - Assert.AreEqual("Direct Messages (2)", view.directChatsHeaderLabel.text); - Assert.AreEqual("Channels (0)", view.channelsHeaderLabel.text); - Assert.AreEqual("Results (0)", view.searchResultsHeaderLabel.text); - Assert.IsNotNull(view.directChatList.Get("pepe")); - Assert.IsNotNull(view.directChatList.Get("bleh")); - } + [Test] + public void HidePrivateChatsLoading() + { + view.HidePrivateChatsLoading(); - [UnityTest] - public IEnumerator RemovePrivateChat() - { - const string userId = "userId"; + Assert.IsFalse(view.directChatsLoadingContainer.activeSelf); + Assert.IsTrue(view.directChatList.isVisible); + Assert.IsTrue(view.scroll.enabled); + } - GivenPrivateChat(userId); + [UnityTest] + public IEnumerator CreatePrivateChat() + { + const string userId = "userId"; + GivenPrivateChat(userId); + + Assert.AreEqual(0, view.directChatList.Count()); + Assert.AreEqual(0, view.searchResultsList.Count()); + Assert.AreEqual(0, view.publicChannelList.Count()); + + // direct chats are enqueued, then created in the next frame + yield return null; + + Assert.AreEqual(1, view.directChatList.Count()); + Assert.AreEqual(0, view.searchResultsList.Count()); + Assert.AreEqual(0, view.publicChannelList.Count()); + Assert.AreEqual("Direct Messages (1)", view.directChatsHeaderLabel.text); + Assert.AreEqual("Channels (0)", view.channelsHeaderLabel.text); + Assert.AreEqual("Results (0)", view.searchResultsHeaderLabel.text); + Assert.IsNotNull(view.directChatList.Get(userId)); + } + + [UnityTest] + public IEnumerator CreateManyPrivateChats() + { + GivenPrivateChat("pepe"); + GivenPrivateChat("bleh"); + + yield return null; + + Assert.AreEqual(2, view.directChatList.Count()); + Assert.AreEqual(0, view.searchResultsList.Count()); + Assert.AreEqual(0, view.publicChannelList.Count()); + Assert.AreEqual("Direct Messages (2)", view.directChatsHeaderLabel.text); + Assert.AreEqual("Channels (0)", view.channelsHeaderLabel.text); + Assert.AreEqual("Results (0)", view.searchResultsHeaderLabel.text); + Assert.IsNotNull(view.directChatList.Get("pepe")); + Assert.IsNotNull(view.directChatList.Get("bleh")); + } + + [UnityTest] + public IEnumerator RemovePrivateChat() + { + const string userId = "userId"; - yield return null; + GivenPrivateChat(userId); - view.RemovePrivateChat(userId); + yield return null; - Assert.AreEqual(0, view.directChatList.Count()); - Assert.AreEqual(0, view.searchResultsList.Count()); - Assert.AreEqual(0, view.publicChannelList.Count()); - Assert.IsNull(view.directChatList.Get(userId)); - } + view.RemovePrivateChat(userId); - [UnityTest] - public IEnumerator ReplacePrivateChat() - { - const string USER_ID = "userId"; + Assert.AreEqual(0, view.directChatList.Count()); + Assert.AreEqual(0, view.searchResultsList.Count()); + Assert.AreEqual(0, view.publicChannelList.Count()); + Assert.IsNull(view.directChatList.Get(userId)); + } - var model = new PrivateChatModel + [UnityTest] + public IEnumerator ReplacePrivateChat() { - userId = USER_ID, - userName = "userName", - isBlocked = false, - isOnline = false, - recentMessage = new ChatMessage(ChatMessage.Type.PRIVATE, "senderId", "hello!") - }; + const string USER_ID = "userId"; - view.SetPrivateChat(model); + var model = new PrivateChatModel + { + userId = USER_ID, + userName = "userName", + isBlocked = false, + isOnline = false, + recentMessage = new ChatMessage(ChatMessage.Type.PRIVATE, "senderId", "hello!") + }; - model.recentMessage = new ChatMessage(ChatMessage.Type.PRIVATE, "senderId", "bleh"); - view.SetPrivateChat(model); + view.SetPrivateChat(model); - yield return null; + model.recentMessage = new ChatMessage(ChatMessage.Type.PRIVATE, "senderId", "bleh"); + view.SetPrivateChat(model); - model.recentMessage = new ChatMessage(ChatMessage.Type.PRIVATE, "senderId", "foo"); - view.SetPrivateChat(model); + yield return null; - yield return null; + model.recentMessage = new ChatMessage(ChatMessage.Type.PRIVATE, "senderId", "foo"); + view.SetPrivateChat(model); - Assert.AreEqual(1, view.directChatList.Count()); - Assert.AreEqual(0, view.searchResultsList.Count()); - Assert.AreEqual(0, view.publicChannelList.Count()); - Assert.AreEqual("Direct Messages (1)", view.directChatsHeaderLabel.text); - Assert.AreEqual("Channels (0)", view.channelsHeaderLabel.text); - Assert.AreEqual("Results (0)", view.searchResultsHeaderLabel.text); - Assert.IsNotNull(view.directChatList.Get(USER_ID)); - } - - [UnityTest] - public IEnumerator CreatePublicChannel() - { - const string channelId = "nearby"; - - GivenPublicChannel(channelId, "nearby"); + yield return null; - yield return null; + Assert.AreEqual(1, view.directChatList.Count()); + Assert.AreEqual(0, view.searchResultsList.Count()); + Assert.AreEqual(0, view.publicChannelList.Count()); + Assert.AreEqual("Direct Messages (1)", view.directChatsHeaderLabel.text); + Assert.AreEqual("Channels (0)", view.channelsHeaderLabel.text); + Assert.AreEqual("Results (0)", view.searchResultsHeaderLabel.text); + Assert.IsNotNull(view.directChatList.Get(USER_ID)); + } - Assert.AreEqual(0, view.directChatList.Count()); - Assert.AreEqual(0, view.searchResultsList.Count()); - Assert.AreEqual(1, view.publicChannelList.Count()); - Assert.IsNotNull(view.publicChannelList.Get(channelId)); - } - - [UnityTest] - public IEnumerator CreateManyPublicChannels() - { - GivenPublicChannel("nearby", "nearby"); - GivenPublicChannel("nfts", "nfts"); + [UnityTest] + public IEnumerator CreatePublicChannel() + { + const string channelId = "nearby"; - yield return null; + GivenPublicChannel(channelId, "nearby"); - Assert.AreEqual(0, view.directChatList.Count()); - Assert.AreEqual(0, view.searchResultsList.Count()); - Assert.AreEqual(2, view.publicChannelList.Count()); - Assert.IsNotNull(view.publicChannelList.Get("nearby")); - Assert.IsNotNull(view.publicChannelList.Get("nfts")); - } + yield return null; - [UnityTest] - public IEnumerator ReplacePublicChannel() - { - const string channelId = "nearby"; + Assert.AreEqual(0, view.directChatList.Count()); + Assert.AreEqual(0, view.searchResultsList.Count()); + Assert.AreEqual(1, view.publicChannelList.Count()); + Assert.IsNotNull(view.publicChannelList.Get(channelId)); + } - var model = new PublicChatModel(channelId, "nearby", "any description", true, 0, false, true); - view.SetPublicChat(model); + [UnityTest] + public IEnumerator CreateManyPublicChannels() + { + GivenPublicChannel("nearby", "nearby"); + GivenPublicChannel("nfts", "nfts"); - yield return null; + yield return null; - model.name = "hoho"; - view.SetPublicChat(model); + Assert.AreEqual(0, view.directChatList.Count()); + Assert.AreEqual(0, view.searchResultsList.Count()); + Assert.AreEqual(2, view.publicChannelList.Count()); + Assert.IsNotNull(view.publicChannelList.Get("nearby")); + Assert.IsNotNull(view.publicChannelList.Get("nfts")); + } - yield return null; + [UnityTest] + public IEnumerator ReplacePublicChannel() + { + const string channelId = "nearby"; - model.description = "another description"; - view.SetPublicChat(model); + var model = new PublicChatModel(channelId, "nearby", "any description", true, 0, false, true); + view.SetPublicChat(model); - yield return null; + yield return null; - Assert.AreEqual(0, view.directChatList.Count()); - Assert.AreEqual(0, view.searchResultsList.Count()); - Assert.AreEqual(1, view.publicChannelList.Count()); - Assert.IsNotNull(view.publicChannelList.Get(channelId)); - } + model.name = "hoho"; + view.SetPublicChat(model); - [UnityTest] - public IEnumerator TriggerOpenPublicChannel() - { - const string expectedChannelId = "nearby"; - var channelId = ""; - view.OnOpenPublicChat += s => channelId = s; - GivenPublicChannel(expectedChannelId, expectedChannelId); + yield return null; - yield return null; + model.description = "another description"; + view.SetPublicChat(model); - view.publicChannelList.Get(expectedChannelId).openChatButton.onClick.Invoke(); + yield return null; - Assert.AreEqual(expectedChannelId, channelId); - } + Assert.AreEqual(0, view.directChatList.Count()); + Assert.AreEqual(0, view.searchResultsList.Count()); + Assert.AreEqual(1, view.publicChannelList.Count()); + Assert.IsNotNull(view.publicChannelList.Get(channelId)); + } - [UnityTest] - public IEnumerator TriggerOpenPrivateChannel() - { - const string userId = "userId"; - var channelId = ""; - view.OnOpenPrivateChat += s => channelId = s; - GivenPrivateChat(userId); + [UnityTest] + public IEnumerator TriggerOpenPublicChannel() + { + const string expectedChannelId = "nearby"; + var channelId = ""; + view.OnOpenPublicChat += s => channelId = s; + GivenPublicChannel(expectedChannelId, expectedChannelId); - yield return null; + yield return null; - view.directChatList.Get(userId).openChatButton.onClick.Invoke(); + view.publicChannelList.Get(expectedChannelId).openChatButton.onClick.Invoke(); - Assert.AreEqual(userId, channelId); - } + Assert.AreEqual(expectedChannelId, channelId); + } - [Test] - public void TriggerClose() - { - var closed = false; - view.OnClose += () => closed = true; + [UnityTest] + public IEnumerator TriggerOpenPrivateChannel() + { + const string userId = "userId"; + var channelId = ""; + view.OnOpenPrivateChat += s => channelId = s; + GivenPrivateChat(userId); - view.closeButton.onClick.Invoke(); + yield return null; - Assert.IsTrue(closed); - } + view.directChatList.Get(userId).openChatButton.onClick.Invoke(); - [Test] - public void TriggerSearchChannel() - { - var search = ""; - view.OnSearchChatRequested += s => search = s; + Assert.AreEqual(userId, channelId); + } - view.searchBar.SubmitSearch("hello"); + [Test] + public void TriggerClose() + { + var closed = false; + view.OnClose += () => closed = true; - Assert.AreEqual("hello", search); - } + view.closeButton.onClick.Invoke(); - [UnityTest] - public IEnumerator TriggerRequestMorePrivateChats() - { - var called = false; - view.HideMoreChatsLoading(); - view.ShowMoreChatsToLoadHint(2); - view.OnRequireMorePrivateChats += () => called = true; + Assert.IsTrue(closed); + } - view.scroll.onValueChanged.Invoke(Vector2.one); - view.scroll.onValueChanged.Invoke(Vector2.zero); + [Test] + public void TriggerSearchChannel() + { + var search = ""; + view.OnSearchChatRequested += s => search = s; - yield return new WaitForSeconds(1.1f); + view.searchBar.SubmitSearch("hello"); - Assert.IsTrue(called); - } + Assert.AreEqual("hello", search); + } - [Test] - public void UpdateHeadersOnStart() - { - Assert.AreEqual("Direct Messages (0)", view.directChatsHeaderLabel.text); - Assert.AreEqual("Channels (0)", view.channelsHeaderLabel.text); - Assert.AreEqual("Results (0)", view.searchResultsHeaderLabel.text); - } + [UnityTest] + public IEnumerator TriggerRequestMorePrivateChats() + { + var called = false; + view.HideMoreChatsLoading(); + view.ShowMoreChatsToLoadHint(2); + view.OnRequireMorePrivateChats += () => called = true; - [Test] - public void ShowMoreChatsToLoadHint() - { - view.ShowMoreChatsToLoadHint(5); + view.scroll.onValueChanged.Invoke(Vector2.one); + view.scroll.onValueChanged.Invoke(Vector2.zero); - Assert.AreEqual("5 chats hidden. Use the search bar to find them or click below to show more.", - view.loadMoreEntriesLabel.text); - Assert.IsTrue(view.loadMoreEntriesContainer.activeSelf); - Assert.IsFalse(view.emptyDirectChatsContainer.activeSelf); - } + yield return new WaitForSeconds(1.1f); - [Test] - public void HideMoreChatsToLoadHint() - { - view.HideMoreChatsToLoadHint(); + Assert.IsTrue(called); + } - Assert.IsFalse(view.loadMoreEntriesContainer.activeSelf); - Assert.IsTrue(view.emptyDirectChatsContainer.activeSelf); - } + [Test] + public void UpdateHeadersOnStart() + { + Assert.AreEqual("Direct Messages (0)", view.directChatsHeaderLabel.text); + Assert.AreEqual("Channels (0)", view.channelsHeaderLabel.text); + Assert.AreEqual("Results (0)", view.searchResultsHeaderLabel.text); + } - [UnityTest] - public IEnumerator Filter() - { - GivenPrivateChat("pepe"); - GivenPrivateChat("genio"); - GivenPrivateChat("bleh"); - GivenPublicChannel("nearby", "nearby"); - - yield return null; - - view.EnableSearchMode(); - - view.SetPrivateChat(new PrivateChatModel - { - userId = "genio", - userName = "userName", - recentMessage = new ChatMessage(ChatMessage.Type.PRIVATE, "senderId", "hello") - }); - view.SetPrivateChat(new PrivateChatModel - { - userId = "pepe", - userName = "userName", - recentMessage = new ChatMessage(ChatMessage.Type.PRIVATE, "senderId", "buy my nft") - }); - view.SetPublicChat(new PublicChatModel("nearby", "nearby", "", true, 1, false, true)); - - yield return null; - - Assert.AreEqual(3, view.directChatList.Count()); - Assert.AreEqual(3, view.searchResultsList.Count()); - Assert.AreEqual(1, view.publicChannelList.Count()); - Assert.AreEqual("Results (3)", view.searchResultsHeaderLabel.text); - Assert.IsNotNull(view.searchResultsList.Get("genio")); - Assert.IsNotNull(view.searchResultsList.Get("pepe")); - Assert.IsNotNull(view.searchResultsList.Get("nearby")); - Assert.IsTrue(view.searchResultsHeader.activeSelf); - Assert.IsTrue(view.searchResultsList.isVisible); - Assert.IsFalse(view.directChannelHeader.activeSelf); - Assert.IsFalse(view.channelsHeader.activeSelf); - Assert.IsFalse(view.directChatList.isVisible); - Assert.IsFalse(view.publicChannelList.isVisible); - } + [Test] + public void ShowMoreChatsToLoadHint() + { + view.ShowMoreChatsToLoadHint(5); - [UnityTest] - public IEnumerator ClearFilter() - { - yield return Filter(); - - view.DisableSearchMode(); - - Assert.AreEqual(3, view.directChatList.Count()); - Assert.AreEqual(1, view.publicChannelList.Count()); - Assert.AreEqual("Direct Messages (3)", view.directChatsHeaderLabel.text); - Assert.AreEqual("Channels (1)", view.channelsHeaderLabel.text); - Assert.IsNotNull(view.directChatList.Get("genio")); - Assert.IsNotNull(view.directChatList.Get("pepe")); - Assert.IsNotNull(view.directChatList.Get("bleh")); - Assert.IsNotNull(view.publicChannelList.Get("nearby")); - Assert.IsFalse(view.searchResultsHeader.activeSelf); - Assert.IsFalse(view.searchResultsList.isVisible); - Assert.IsTrue(view.directChannelHeader.activeSelf); - Assert.IsTrue(view.channelsHeader.activeSelf); - Assert.IsTrue(view.directChatList.isVisible); - Assert.IsTrue(view.publicChannelList.isVisible); - } + Assert.AreEqual("5 chats hidden. Use the search bar to find them or click below to show more.", + view.loadMoreEntriesLabel.text); + Assert.IsTrue(view.loadMoreEntriesContainer.activeSelf); + Assert.IsFalse(view.emptyDirectChatsContainer.activeSelf); + } - [UnityTest] - public IEnumerator SearchAndClearManyTimes() - { - yield return Filter(); - yield return ClearFilter(); - yield return Filter(); - yield return ClearFilter(); - } + [Test] + public void HideMoreChatsToLoadHint() + { + view.HideMoreChatsToLoadHint(); - [Test] - public void HideMoreChatsLoadingCorrectly() - { - view.loadMoreEntriesLoading.SetActive(true); + Assert.IsFalse(view.loadMoreEntriesContainer.activeSelf); + Assert.IsTrue(view.emptyDirectChatsContainer.activeSelf); + } - view.HideMoreChatsLoading(); + [UnityTest] + public IEnumerator Filter() + { + GivenPrivateChat("pepe"); + GivenPrivateChat("genio"); + GivenPrivateChat("bleh"); + GivenPublicChannel("nearby", "nearby"); + + yield return null; + + view.EnableSearchMode(); + + view.SetPrivateChat(new PrivateChatModel + { + userId = "genio", + userName = "userName", + recentMessage = new ChatMessage(ChatMessage.Type.PRIVATE, "senderId", "hello") + }); + view.SetPrivateChat(new PrivateChatModel + { + userId = "pepe", + userName = "userName", + recentMessage = new ChatMessage(ChatMessage.Type.PRIVATE, "senderId", "buy my nft") + }); + view.SetPublicChat(new PublicChatModel("nearby", "nearby", "", true, 1, false, true)); + + yield return null; + + Assert.AreEqual(3, view.directChatList.Count()); + Assert.AreEqual(3, view.searchResultsList.Count()); + Assert.AreEqual(1, view.publicChannelList.Count()); + Assert.AreEqual("Results (3)", view.searchResultsHeaderLabel.text); + Assert.IsNotNull(view.searchResultsList.Get("genio")); + Assert.IsNotNull(view.searchResultsList.Get("pepe")); + Assert.IsNotNull(view.searchResultsList.Get("nearby")); + Assert.IsTrue(view.searchResultsHeader.activeSelf); + Assert.IsTrue(view.searchResultsList.isVisible); + Assert.IsFalse(view.directChannelHeader.activeSelf); + Assert.IsFalse(view.channelsHeader.activeSelf); + Assert.IsFalse(view.directChatList.isVisible); + Assert.IsFalse(view.publicChannelList.isVisible); + } + + [UnityTest] + public IEnumerator ClearFilter() + { + yield return Filter(); + + view.DisableSearchMode(); + + Assert.AreEqual(3, view.directChatList.Count()); + Assert.AreEqual(1, view.publicChannelList.Count()); + Assert.AreEqual("Direct Messages (3)", view.directChatsHeaderLabel.text); + Assert.AreEqual("Channels (1)", view.channelsHeaderLabel.text); + Assert.IsNotNull(view.directChatList.Get("genio")); + Assert.IsNotNull(view.directChatList.Get("pepe")); + Assert.IsNotNull(view.directChatList.Get("bleh")); + Assert.IsNotNull(view.publicChannelList.Get("nearby")); + Assert.IsFalse(view.searchResultsHeader.activeSelf); + Assert.IsFalse(view.searchResultsList.isVisible); + Assert.IsTrue(view.directChannelHeader.activeSelf); + Assert.IsTrue(view.channelsHeader.activeSelf); + Assert.IsTrue(view.directChatList.isVisible); + Assert.IsTrue(view.publicChannelList.isVisible); + } + + [UnityTest] + public IEnumerator SearchAndClearManyTimes() + { + yield return Filter(); + yield return ClearFilter(); + yield return Filter(); + yield return ClearFilter(); + } + + [Test] + public void HideMoreChatsLoadingCorrectly() + { + view.loadMoreEntriesLoading.SetActive(true); - Assert.IsFalse(view.loadMoreEntriesLoading.activeSelf); - } + view.HideMoreChatsLoading(); - [Test] - public void ShowMoreChatsLoadingCorrectly() - { - view.loadMoreEntriesLoading.SetActive(false); + Assert.IsFalse(view.loadMoreEntriesLoading.activeSelf); + } - view.ShowMoreChatsLoading(); + [Test] + public void ShowMoreChatsLoadingCorrectly() + { + view.loadMoreEntriesLoading.SetActive(false); - Assert.IsTrue(view.loadMoreEntriesLoading.activeSelf); - } + view.ShowMoreChatsLoading(); - [Test] - public void HideSearchLoadingCorrectly() - { - view.searchLoading.SetActive(true); + Assert.IsTrue(view.loadMoreEntriesLoading.activeSelf); + } - view.HideSearchLoading(); + [Test] + public void HideSearchLoadingCorrectly() + { + view.searchLoading.SetActive(true); - Assert.IsFalse(view.searchLoading.activeSelf); - } + view.HideSearchLoading(); - [Test] - public void ShowSearchLoadingCorrectly() - { - view.searchLoading.SetActive(false); + Assert.IsFalse(view.searchLoading.activeSelf); + } - view.ShowSearchLoading(); + [Test] + public void ShowSearchLoadingCorrectly() + { + view.searchLoading.SetActive(false); - Assert.IsTrue(view.searchLoading.activeSelf); - } + view.ShowSearchLoading(); - [UnityTest] - public IEnumerator LeaveChannel() - { - var expectedChannelId = "channelId"; - var leaveChannelId = ""; - view.OnLeaveChannel += s => leaveChannelId = s; - GivenPublicChannel(expectedChannelId, "hehe"); + Assert.IsTrue(view.searchLoading.activeSelf); + } - yield return null; + [UnityTest] + public IEnumerator LeaveChannel() + { + var expectedChannelId = "channelId"; + var leaveChannelId = ""; + view.OnLeaveChannel += s => leaveChannelId = s; + GivenPublicChannel(expectedChannelId, "hehe"); - var entry = view.publicChannelList.Get(expectedChannelId); - entry.optionsButton.onClick.Invoke(); - view.channelContextualMenu.leaveButton.onClick.Invoke(); + yield return null; - Assert.AreEqual(expectedChannelId, leaveChannelId); - } + var entry = view.publicChannelList.Get(expectedChannelId); + entry.optionsButton.onClick.Invoke(); + view.channelContextualMenu.leaveButton.onClick.Invoke(); - [Test] - public void ShowConnectWallet() - { - view.ShowConnectWallet(); + Assert.AreEqual(expectedChannelId, leaveChannelId); + } - Assert.IsTrue(view.connectWalletContainer.activeSelf); - Assert.IsFalse(view.searchBarContainer.activeSelf); - } + [Test] + public void ShowConnectWallet() + { + view.ShowConnectWallet(); - [Test] - public void HideConnectWallet() - { - view.HideConnectWallet(); + Assert.IsTrue(view.connectWalletContainer.activeSelf); + Assert.IsFalse(view.searchBarContainer.activeSelf); + } - Assert.IsFalse(view.connectWalletContainer.activeSelf); - Assert.IsTrue(view.searchBarContainer.activeSelf); - } + [Test] + public void HideConnectWallet() + { + view.HideConnectWallet(); - [Test] - public void TriggerSignUpWhenConnectWalletButtonClicks() - { - var called = false; - view.OnSignUp += () => called = true; + Assert.IsFalse(view.connectWalletContainer.activeSelf); + Assert.IsTrue(view.searchBarContainer.activeSelf); + } - view.connectWalletButton.onClick.Invoke(); + [Test] + public void TriggerSignUpWhenConnectWalletButtonClicks() + { + var called = false; + view.OnSignUp += () => called = true; - Assert.IsTrue(called); - } + view.connectWalletButton.onClick.Invoke(); - [Test] - public void TriggerWalletReadmeWhenButtonClicks() - { - var called = false; - view.OnRequireWalletReadme += () => called = true; + Assert.IsTrue(called); + } - view.whatIsWalletButton.onClick.Invoke(); + [Test] + public void TriggerWalletReadmeWhenButtonClicks() + { + var called = false; + view.OnRequireWalletReadme += () => called = true; - Assert.IsTrue(called); - } + view.whatIsWalletButton.onClick.Invoke(); - private void GivenPrivateChat(string userId) - { - view.SetPrivateChat(new PrivateChatModel - { - userId = userId, - userName = "userName", - isBlocked = false, - isOnline = false, - recentMessage = new ChatMessage(ChatMessage.Type.PRIVATE, "senderId", "hello!") - }); - } + Assert.IsTrue(called); + } - private void GivenPublicChannel(string channelId, string name) - { - view.SetPublicChat(new PublicChatModel(channelId, name, "any description", true, 0, false, true)); + private void GivenPrivateChat(string userId) + { + view.SetPrivateChat(new PrivateChatModel + { + userId = userId, + userName = "userName", + isBlocked = false, + isOnline = false, + recentMessage = new ChatMessage(ChatMessage.Type.PRIVATE, "senderId", "hello!") + }); + } + + private void GivenPublicChannel(string channelId, string name) + { + view.SetPublicChat(new PublicChatModel(channelId, name, "any description", true, 0, false, true)); + } } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/WorldChatWindowControllerShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/WorldChatWindowControllerShould.cs index 1a8c7c1411..3c60116eb2 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/WorldChatWindowControllerShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/WorldChatWindowControllerShould.cs @@ -1,7 +1,6 @@ using Cysharp.Threading.Tasks; using System; using System.Collections.Generic; -using DCL; using DCL.Browser; using DCL.Chat; using DCL.Chat.Channels; @@ -15,655 +14,658 @@ using UnityEngine; using Channel = DCL.Chat.Channels.Channel; -public class WorldChatWindowControllerShould +namespace DCL.Social.Chat { - private const string OWN_USER_ID = "myId"; - private const string FRIEND_ID = "friendId"; - - private IUserProfileBridge userProfileBridge; - private WorldChatWindowController controller; - private IWorldChatWindowView view; - private IChatController chatController; - private IFriendsController friendsController; - private IMouseCatcher mouseCatcher; - private UserProfile ownUserProfile; - private ISocialAnalytics socialAnalytics; - private IChannelsFeatureFlagService channelsFeatureFlagService; - private DataStore dataStore; - private IBrowserBridge browserBridge; - - [SetUp] - public void SetUp() - { - userProfileBridge = Substitute.For(); - ownUserProfile = ScriptableObject.CreateInstance(); - ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID }); - userProfileBridge.GetOwn().Returns(ownUserProfile); - mouseCatcher = Substitute.For(); - chatController = Substitute.For(); - chatController.IsInitialized.Returns(true); - chatController.GetAllocatedChannel("nearby").Returns(new Channel("nearby", "nearby", 0, 0, true, false, "")); - friendsController = Substitute.For(); - friendsController.IsInitialized.Returns(true); - friendsController.GetFriendshipStatus(Arg.Any(), Arg.Any()) - .Returns(UniTask.FromResult(FriendshipStatus.NOT_FRIEND)); - socialAnalytics = Substitute.For(); - channelsFeatureFlagService = Substitute.For(); - channelsFeatureFlagService.IsChannelsFeatureEnabled().Returns(true); - channelsFeatureFlagService.GetAutoJoinChannelsList().Returns(null as AutomaticJoinChannelList); - dataStore = new DataStore(); - browserBridge = Substitute.For(); - - controller = new WorldChatWindowController(userProfileBridge, - friendsController, - chatController, - dataStore, - mouseCatcher, - socialAnalytics, - channelsFeatureFlagService, - browserBridge, - CommonScriptableObjects.rendererState, - new DataStore_Mentions()); - - view = Substitute.For(); - } - - [Test] - public void SetPublicChannelWhenInitialize() - { - controller.Initialize(view); - - view.Received(1) - .SetPublicChat(Arg.Is(p => p.name == "nearby" - && p.channelId == "nearby")); - } - - [Test] - public void ShowPrivateChatWhenMessageIsAdded() - { - const string messageBody = "wow"; - - GivenFriend(FRIEND_ID, PresenceStatus.OFFLINE); - - controller.Initialize(view); - - chatController.OnAddMessage += Raise.Event>( - new[] { new ChatMessage(ChatMessage.Type.PRIVATE, FRIEND_ID, messageBody) }); - - view.Received(1) - .SetPrivateChat(Arg.Is(p => !p.isBlocked - && !p.isOnline - && !p.isBlocked - && p.recentMessage.body == messageBody)); - } - - [Test] - public void UpdatePresenceStatus() - { - GivenFriend(FRIEND_ID, PresenceStatus.OFFLINE); - - controller.Initialize(view); - - friendsController.OnUpdateUserStatus += Raise.Event>( - FRIEND_ID, - new UserStatus - { - userId = FRIEND_ID, - presence = PresenceStatus.ONLINE, - friendshipStatus = FriendshipStatus.NOT_FRIEND - }); - - Received.InOrder(() => view.RemovePrivateChat(FRIEND_ID)); - } - - [TestCase(FriendshipStatus.REQUESTED_TO)] - [TestCase(FriendshipStatus.REQUESTED_FROM)] - [TestCase(FriendshipStatus.NOT_FRIEND)] - public void RemovePrivateChatWhenUserIsUpdatedAsNonFriend(FriendshipStatus status) - { - GivenFriend(FRIEND_ID, PresenceStatus.OFFLINE); - - controller.Initialize(view); - - friendsController.OnUpdateUserStatus += Raise.Event>( - FRIEND_ID, - new UserStatus - { - userId = FRIEND_ID, - presence = PresenceStatus.ONLINE, - friendshipStatus = status - }); - - view.Received(1).RemovePrivateChat(FRIEND_ID); - } - - [TestCase(FriendshipAction.NONE)] - [TestCase(FriendshipAction.DELETED)] - [TestCase(FriendshipAction.REJECTED)] - [TestCase(FriendshipAction.CANCELLED)] - [TestCase(FriendshipAction.REQUESTED_TO)] - [TestCase(FriendshipAction.REQUESTED_FROM)] - public void RemovePrivateChatWhenFriendshipUpdatesAsNonFriend(FriendshipAction action) - { - GivenFriend(FRIEND_ID, PresenceStatus.OFFLINE); - - controller.Initialize(view); - - friendsController.OnUpdateFriendship += Raise.Event>(FRIEND_ID, action); - - view.Received(1).RemovePrivateChat(FRIEND_ID); - } - - [Test] - public void ShowPrivateChatsLoadingWhenAuthenticatedWithWallet() - { - friendsController.IsInitialized.Returns(false); - ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID, hasConnectedWeb3 = true }); - - controller.Initialize(view); - - view.Received(1).ShowPrivateChatsLoading(); - } - - [Test] - public void DoNotShowChatsLoadingWhenIsGuestUser() - { - friendsController.IsInitialized.Returns(false); - ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID, hasConnectedWeb3 = false }); - - controller.Initialize(view); - - view.DidNotReceive().ShowPrivateChatsLoading(); - } - - [Test] - public void HideChatsLoadWhenFriendsIsInitialized() - { - friendsController.IsInitialized.Returns(false); - ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID, hasConnectedWeb3 = true }); - - controller.Initialize(view); - friendsController.OnInitialized += Raise.Event(); - - view.Received(1).HidePrivateChatsLoading(); - } - - [Test] - public void Show() - { - var openTriggered = false; - controller.OnOpen += () => openTriggered = true; - - controller.Initialize(view, false); - controller.SetVisibility(true); - - view.Received(1).Show(); - Assert.IsTrue(openTriggered); - } - - [Test] - public void Hide() - { - controller.Initialize(view, false); - controller.SetVisibility(false); - - view.Received(1).Hide(); - } - - [Test] - public void UpdatePrivateChatWhenTooManyEntries() - { - GivenFriend(FRIEND_ID, PresenceStatus.ONLINE); - view.ContainsPrivateChannel(FRIEND_ID).Returns(true); - - controller.Initialize(view); - - chatController.OnAddMessage += Raise.Event>( - new[] { new ChatMessage(ChatMessage.Type.PRIVATE, FRIEND_ID, "wow") }); - - view.Received(1).SetPrivateChat(Arg.Is(p => p.userId == FRIEND_ID)); - view.DidNotReceiveWithAnyArgs().ShowMoreChatsToLoadHint(default); - } - - [Test] - public void HideWhenRequested() - { - controller.Initialize(view); - view.OnClose += Raise.Event(); - - view.Received(1).Hide(); - } - - [Test] - public void TriggerOpenPrivateChat() - { - var opened = false; - controller.OnOpenPrivateChat += s => opened = s == FRIEND_ID; - controller.Initialize(view); - view.OnOpenPrivateChat += Raise.Event>(FRIEND_ID); - - Assert.IsTrue(opened); - } - - [Test] - public void TriggerOpenPublicChat() - { - var opened = false; - controller.OnOpenPublicChat += s => opened = s == "nearby"; - controller.Initialize(view); - view.OnOpenPublicChat += Raise.Event>("nearby"); - - Assert.IsTrue(opened); - } - - [Test] - public void TriggerOpenChannel() - { - var opened = false; - controller.OnOpenChannel += s => opened = s == FRIEND_ID; - controller.Initialize(view); - view.OnOpenPublicChat += Raise.Event>(FRIEND_ID); - - Assert.IsTrue(opened); - } - - [Test] - public void ClearChannelFilterWhenSearchIsEmpty() - { - controller.Initialize(view); - view.OnSearchChatRequested += Raise.Event>(""); - - view.Received(1).DisableSearchMode(); - } - - [Test] - public void SearchChannels() - { - controller.Initialize(view); - - chatController.OnChannelUpdated += Raise.Event>( - new Channel("channelId", "channelName", 0, 1, true, false, "")); - - view.ClearReceivedCalls(); - - view.OnSearchChatRequested += Raise.Event>("nam"); + public class WorldChatWindowControllerShould + { + private const string OWN_USER_ID = "myId"; + private const string FRIEND_ID = "friendId"; + + private IUserProfileBridge userProfileBridge; + private WorldChatWindowController controller; + private IWorldChatWindowView view; + private IChatController chatController; + private IFriendsController friendsController; + private IMouseCatcher mouseCatcher; + private UserProfile ownUserProfile; + private ISocialAnalytics socialAnalytics; + private IChannelsFeatureFlagService channelsFeatureFlagService; + private DataStore dataStore; + private IBrowserBridge browserBridge; + + [SetUp] + public void SetUp() + { + userProfileBridge = Substitute.For(); + ownUserProfile = ScriptableObject.CreateInstance(); + ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID }); + userProfileBridge.GetOwn().Returns(ownUserProfile); + mouseCatcher = Substitute.For(); + chatController = Substitute.For(); + chatController.IsInitialized.Returns(true); + chatController.GetAllocatedChannel("nearby").Returns(new Channel("nearby", "nearby", 0, 0, true, false, "")); + friendsController = Substitute.For(); + friendsController.IsInitialized.Returns(true); + friendsController.GetFriendshipStatus(Arg.Any(), Arg.Any()) + .Returns(UniTask.FromResult(FriendshipStatus.NOT_FRIEND)); + socialAnalytics = Substitute.For(); + channelsFeatureFlagService = Substitute.For(); + channelsFeatureFlagService.IsChannelsFeatureEnabled().Returns(true); + channelsFeatureFlagService.GetAutoJoinChannelsList().Returns(null as AutomaticJoinChannelList); + dataStore = new DataStore(); + browserBridge = Substitute.For(); + + controller = new WorldChatWindowController(userProfileBridge, + friendsController, + chatController, + dataStore, + mouseCatcher, + socialAnalytics, + channelsFeatureFlagService, + browserBridge, + CommonScriptableObjects.rendererState, + new DataStore_Mentions()); + + view = Substitute.For(); + } + + [Test] + public void SetPublicChannelWhenInitialize() + { + controller.Initialize(view); + + view.Received(1) + .SetPublicChat(Arg.Is(p => p.name == "nearby" + && p.channelId == "nearby")); + } + + [Test] + public void ShowPrivateChatWhenMessageIsAdded() + { + const string messageBody = "wow"; + + GivenFriend(FRIEND_ID, PresenceStatus.OFFLINE); + + controller.Initialize(view); + + chatController.OnAddMessage += Raise.Event>( + new[] { new ChatMessage(ChatMessage.Type.PRIVATE, FRIEND_ID, messageBody) }); + + view.Received(1) + .SetPrivateChat(Arg.Is(p => !p.isBlocked + && !p.isOnline + && !p.isBlocked + && p.recentMessage.body == messageBody)); + } + + [Test] + public void UpdatePresenceStatus() + { + GivenFriend(FRIEND_ID, PresenceStatus.OFFLINE); + + controller.Initialize(view); + + friendsController.OnUpdateUserStatus += Raise.Event>( + FRIEND_ID, + new UserStatus + { + userId = FRIEND_ID, + presence = PresenceStatus.ONLINE, + friendshipStatus = FriendshipStatus.NOT_FRIEND + }); + + Received.InOrder(() => view.RemovePrivateChat(FRIEND_ID)); + } + + [TestCase(FriendshipStatus.REQUESTED_TO)] + [TestCase(FriendshipStatus.REQUESTED_FROM)] + [TestCase(FriendshipStatus.NOT_FRIEND)] + public void RemovePrivateChatWhenUserIsUpdatedAsNonFriend(FriendshipStatus status) + { + GivenFriend(FRIEND_ID, PresenceStatus.OFFLINE); + + controller.Initialize(view); + + friendsController.OnUpdateUserStatus += Raise.Event>( + FRIEND_ID, + new UserStatus + { + userId = FRIEND_ID, + presence = PresenceStatus.ONLINE, + friendshipStatus = status + }); + + view.Received(1).RemovePrivateChat(FRIEND_ID); + } + + [TestCase(FriendshipAction.NONE)] + [TestCase(FriendshipAction.DELETED)] + [TestCase(FriendshipAction.REJECTED)] + [TestCase(FriendshipAction.CANCELLED)] + [TestCase(FriendshipAction.REQUESTED_TO)] + [TestCase(FriendshipAction.REQUESTED_FROM)] + public void RemovePrivateChatWhenFriendshipUpdatesAsNonFriend(FriendshipAction action) + { + GivenFriend(FRIEND_ID, PresenceStatus.OFFLINE); + + controller.Initialize(view); + + friendsController.OnUpdateFriendship += Raise.Event>(FRIEND_ID, action); + + view.Received(1).RemovePrivateChat(FRIEND_ID); + } + + [Test] + public void ShowPrivateChatsLoadingWhenAuthenticatedWithWallet() + { + friendsController.IsInitialized.Returns(false); + ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID, hasConnectedWeb3 = true }); + + controller.Initialize(view); + + view.Received(1).ShowPrivateChatsLoading(); + } + + [Test] + public void DoNotShowChatsLoadingWhenIsGuestUser() + { + friendsController.IsInitialized.Returns(false); + ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID, hasConnectedWeb3 = false }); + + controller.Initialize(view); + + view.DidNotReceive().ShowPrivateChatsLoading(); + } + + [Test] + public void HideChatsLoadWhenFriendsIsInitialized() + { + friendsController.IsInitialized.Returns(false); + ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID, hasConnectedWeb3 = true }); + + controller.Initialize(view); + friendsController.OnInitialized += Raise.Event(); + + view.Received(1).HidePrivateChatsLoading(); + } + + [Test] + public void Show() + { + var openTriggered = false; + controller.OnOpen += () => openTriggered = true; + + controller.Initialize(view, false); + controller.SetVisibility(true); + + view.Received(1).Show(); + Assert.IsTrue(openTriggered); + } + + [Test] + public void Hide() + { + controller.Initialize(view, false); + controller.SetVisibility(false); + + view.Received(1).Hide(); + } + + [Test] + public void UpdatePrivateChatWhenTooManyEntries() + { + GivenFriend(FRIEND_ID, PresenceStatus.ONLINE); + view.ContainsPrivateChannel(FRIEND_ID).Returns(true); + + controller.Initialize(view); + + chatController.OnAddMessage += Raise.Event>( + new[] { new ChatMessage(ChatMessage.Type.PRIVATE, FRIEND_ID, "wow") }); + + view.Received(1).SetPrivateChat(Arg.Is(p => p.userId == FRIEND_ID)); + view.DidNotReceiveWithAnyArgs().ShowMoreChatsToLoadHint(default); + } + + [Test] + public void HideWhenRequested() + { + controller.Initialize(view); + view.OnClose += Raise.Event(); + + view.Received(1).Hide(); + } + + [Test] + public void TriggerOpenPrivateChat() + { + var opened = false; + controller.OnOpenPrivateChat += s => opened = s == FRIEND_ID; + controller.Initialize(view); + view.OnOpenPrivateChat += Raise.Event>(FRIEND_ID); + + Assert.IsTrue(opened); + } + + [Test] + public void TriggerOpenPublicChat() + { + var opened = false; + controller.OnOpenPublicChat += s => opened = s == "nearby"; + controller.Initialize(view); + view.OnOpenPublicChat += Raise.Event>("nearby"); + + Assert.IsTrue(opened); + } + + [Test] + public void TriggerOpenChannel() + { + var opened = false; + controller.OnOpenChannel += s => opened = s == FRIEND_ID; + controller.Initialize(view); + view.OnOpenPublicChat += Raise.Event>(FRIEND_ID); + + Assert.IsTrue(opened); + } + + [Test] + public void ClearChannelFilterWhenSearchIsEmpty() + { + controller.Initialize(view); + view.OnSearchChatRequested += Raise.Event>(""); + + view.Received(1).DisableSearchMode(); + } + + [Test] + public void SearchChannels() + { + controller.Initialize(view); + + chatController.OnChannelUpdated += Raise.Event>( + new Channel("channelId", "channelName", 0, 1, true, false, "")); + + view.ClearReceivedCalls(); + + view.OnSearchChatRequested += Raise.Event>("nam"); + + view.Received(1).EnableSearchMode(); + view.Received(1).SetPublicChat(Arg.Is(p => p.name == "channelName")); + friendsController.Received(1).GetFriendsWithDirectMessages("nam", 20); + } + + [Test] + public void ShowMoreChannelsToLoadHintCorrectly() + { + controller.Initialize(view, false); + friendsController.TotalFriendsWithDirectMessagesCount.Returns(40); + GivenFriend("bleh", PresenceStatus.ONLINE); + + controller.SetVisibility(true); + + friendsController.OnAddFriendsWithDirectMessages += Raise.Event>>( + new List + { + new FriendWithDirectMessages { userId = "bleh", lastMessageBody = "hey", lastMessageTimestamp = 6 } + }); + + view.Received(1).ShowMoreChatsToLoadHint(10); + } + + [Test] + public void HideMoreChannelsToLoadHintCorrectly() + { + controller.Initialize(view, false); + friendsController.TotalFriendsWithDirectMessagesCount.Returns(26); + controller.SetVisibility(true); + view.ClearReceivedCalls(); + GivenFriend("bleh", PresenceStatus.ONLINE); + + friendsController.OnAddFriendsWithDirectMessages += Raise.Event>>( + new List + { + new FriendWithDirectMessages { userId = "bleh", lastMessageBody = "hey", lastMessageTimestamp = 6 } + }); + + view.Received(1).HideMoreChatsToLoadHint(); + } + + [Test] + public void RequestFriendsWithDirectMessagesForFirstTime() + { + controller.Initialize(view, false); + controller.SetVisibility(true); + + friendsController.Received(1).GetFriendsWithDirectMessages(30, 0); + view.Received(1).ShowPrivateChatsLoading(); + view.Received(1).HideMoreChatsToLoadHint(); + } + + [Test] + public void RequestFriendsWithDirectMessagesWhenViewRequires() + { + controller.Initialize(view, false); + controller.SetVisibility(true); + friendsController.TotalFriendsWithDirectMessagesCount.Returns(42); + view.ClearReceivedCalls(); + friendsController.ClearReceivedCalls(); + GivenFriend("bleh", PresenceStatus.ONLINE); + + friendsController.OnAddFriendsWithDirectMessages += Raise.Event>>( + new List + { + new FriendWithDirectMessages { userId = "bleh", lastMessageBody = "hey", lastMessageTimestamp = 6 } + }); + + view.OnRequireMorePrivateChats += Raise.Event(); + + friendsController.Received(1).GetFriendsWithDirectMessages(30, 30); + } + + [Test] + public void RequestFriendsWithDirectMessagesFromSearchCorrectly() + { + controller.Initialize(view); + string userName = "test"; + int limit = 30; + + controller.RequestFriendsWithDirectMessagesFromSearch(userName, limit); + + view.Received(1).ShowSearchLoading(); + friendsController.Received(1).GetFriendsWithDirectMessages(userName, limit); + } + + [Test] + public void RequestChannelsWhenBecomesVisible() + { + controller.Initialize(view, false); + controller.SetVisibility(true); + + chatController.Received(1).GetJoinedChannels(10, 0); + } + + [Test] + public void RequestChannelsWhenFriendsInitializes() + { + friendsController.IsInitialized.Returns(false); + controller.Initialize(view, false); + controller.SetVisibility(true); + view.IsActive.Returns(true); + friendsController.IsInitialized.Returns(true); + + friendsController.OnInitialized += Raise.Event(); + + chatController.Received(1).GetJoinedChannels(10, 0); + } + + [Test] + public void RequestUnreadMessagesWhenIsVisible() + { + controller.Initialize(view, false); + controller.SetVisibility(true); + + chatController.Received(1).GetUnseenMessagesByUser(); + } + + [Test] + public void RequestUnreadMessagesWhenFriendsInitializes() + { + controller.Initialize(view, false); + friendsController.IsInitialized.Returns(false); + controller.SetVisibility(true); + friendsController.IsInitialized.Returns(true); + view.IsActive.Returns(true); + friendsController.OnInitialized += Raise.Event(); - view.Received(1).EnableSearchMode(); - view.Received(1).SetPublicChat(Arg.Is(p => p.name == "channelName")); - friendsController.Received(1).GetFriendsWithDirectMessages("nam", 20); - } - - [Test] - public void ShowMoreChannelsToLoadHintCorrectly() - { - controller.Initialize(view, false); - friendsController.TotalFriendsWithDirectMessagesCount.Returns(40); - GivenFriend("bleh", PresenceStatus.ONLINE); - - controller.SetVisibility(true); - - friendsController.OnAddFriendsWithDirectMessages += Raise.Event>>( - new List - { - new FriendWithDirectMessages { userId = "bleh", lastMessageBody = "hey", lastMessageTimestamp = 6 } - }); - - view.Received(1).ShowMoreChatsToLoadHint(10); - } - - [Test] - public void HideMoreChannelsToLoadHintCorrectly() - { - controller.Initialize(view, false); - friendsController.TotalFriendsWithDirectMessagesCount.Returns(26); - controller.SetVisibility(true); - view.ClearReceivedCalls(); - GivenFriend("bleh", PresenceStatus.ONLINE); - - friendsController.OnAddFriendsWithDirectMessages += Raise.Event>>( - new List - { - new FriendWithDirectMessages { userId = "bleh", lastMessageBody = "hey", lastMessageTimestamp = 6 } - }); - - view.Received(1).HideMoreChatsToLoadHint(); - } - - [Test] - public void RequestFriendsWithDirectMessagesForFirstTime() - { - controller.Initialize(view, false); - controller.SetVisibility(true); + chatController.Received(1).GetUnseenMessagesByUser(); + } - friendsController.Received(1).GetFriendsWithDirectMessages(30, 0); - view.Received(1).ShowPrivateChatsLoading(); - view.Received(1).HideMoreChatsToLoadHint(); - } + [Test] + public void LeaveChannel() + { + const string channelId = "channelId"; - [Test] - public void RequestFriendsWithDirectMessagesWhenViewRequires() - { - controller.Initialize(view, false); - controller.SetVisibility(true); - friendsController.TotalFriendsWithDirectMessagesCount.Returns(42); - view.ClearReceivedCalls(); - friendsController.ClearReceivedCalls(); - GivenFriend("bleh", PresenceStatus.ONLINE); - - friendsController.OnAddFriendsWithDirectMessages += Raise.Event>>( - new List - { - new FriendWithDirectMessages { userId = "bleh", lastMessageBody = "hey", lastMessageTimestamp = 6 } - }); - - view.OnRequireMorePrivateChats += Raise.Event(); - - friendsController.Received(1).GetFriendsWithDirectMessages(30, 30); - } + controller.Initialize(view); - [Test] - public void RequestFriendsWithDirectMessagesFromSearchCorrectly() - { - controller.Initialize(view); - string userName = "test"; - int limit = 30; + string channelToLeave = ""; + controller.OnOpenChannelLeave += channelId => { channelToLeave = channelId; }; - controller.RequestFriendsWithDirectMessagesFromSearch(userName, limit); + view.OnLeaveChannel += Raise.Event>(channelId); - view.Received(1).ShowSearchLoading(); - friendsController.Received(1).GetFriendsWithDirectMessages(userName, limit); - } + Assert.AreEqual(channelToLeave, channelId); + } - [Test] - public void RequestChannelsWhenBecomesVisible() - { - controller.Initialize(view, false); - controller.SetVisibility(true); + [Test] + public void TrackEmptyChannelCreated() + { + controller.Initialize(view); - chatController.Received(1).GetJoinedChannels(10, 0); - } + dataStore.channels.channelJoinedSource.Set(ChannelJoinedSource.Search); - [Test] - public void RequestChannelsWhenFriendsInitializes() - { - friendsController.IsInitialized.Returns(false); - controller.Initialize(view, false); - controller.SetVisibility(true); - view.IsActive.Returns(true); - friendsController.IsInitialized.Returns(true); + chatController.OnChannelJoined += + Raise.Event>(new Channel("channelId", "channelName", 0, 1, true, false, "")); - friendsController.OnInitialized += Raise.Event(); - - chatController.Received(1).GetJoinedChannels(10, 0); - } + socialAnalytics.Received(1).SendEmptyChannelCreated("channelName", ChannelJoinedSource.Search); + } - [Test] - public void RequestUnreadMessagesWhenIsVisible() - { - controller.Initialize(view, false); - controller.SetVisibility(true); - - chatController.Received(1).GetUnseenMessagesByUser(); - } - - [Test] - public void RequestUnreadMessagesWhenFriendsInitializes() - { - controller.Initialize(view, false); - friendsController.IsInitialized.Returns(false); - controller.SetVisibility(true); - friendsController.IsInitialized.Returns(true); - view.IsActive.Returns(true); - friendsController.OnInitialized += Raise.Event(); - - chatController.Received(1).GetUnseenMessagesByUser(); - } - - [Test] - public void LeaveChannel() - { - const string channelId = "channelId"; - - controller.Initialize(view); - - string channelToLeave = ""; - controller.OnOpenChannelLeave += channelId => { channelToLeave = channelId; }; - - view.OnLeaveChannel += Raise.Event>(channelId); - - Assert.AreEqual(channelToLeave, channelId); - } - - [Test] - public void TrackEmptyChannelCreated() - { - controller.Initialize(view); - - dataStore.channels.channelJoinedSource.Set(ChannelJoinedSource.Search); - - chatController.OnChannelJoined += - Raise.Event>(new Channel("channelId", "channelName", 0, 1, true, false, "")); - - socialAnalytics.Received(1).SendEmptyChannelCreated("channelName", ChannelJoinedSource.Search); - } - - [Test] - public void TrackPopulatedChannelJoined() - { - controller.Initialize(view); + [Test] + public void TrackPopulatedChannelJoined() + { + controller.Initialize(view); - dataStore.channels.channelJoinedSource.Set(ChannelJoinedSource.Link); + dataStore.channels.channelJoinedSource.Set(ChannelJoinedSource.Link); - chatController.OnChannelJoined += - Raise.Event>(new Channel("channelId", "channelName", 0, 2, true, false, "")); + chatController.OnChannelJoined += + Raise.Event>(new Channel("channelId", "channelName", 0, 2, true, false, "")); - socialAnalytics.Received(1).SendPopulatedChannelJoined("channelName", ChannelJoinedSource.Link, "manual"); - } + socialAnalytics.Received(1).SendPopulatedChannelJoined("channelName", ChannelJoinedSource.Link, "manual"); + } - [Test] - public void TrackAutoChannelJoined() - { - controller.Initialize(view); + [Test] + public void TrackAutoChannelJoined() + { + controller.Initialize(view); - dataStore.channels.channelJoinedSource.Set(ChannelJoinedSource.Link); + dataStore.channels.channelJoinedSource.Set(ChannelJoinedSource.Link); - chatController.OnAutoChannelJoined += - Raise.Event>(new Channel("channelId", "channelName", 0, 2, true, false, "")); + chatController.OnAutoChannelJoined += + Raise.Event>(new Channel("channelId", "channelName", 0, 2, true, false, "")); - socialAnalytics.Received(1).SendPopulatedChannelJoined("channelName", ChannelJoinedSource.Link, "auto"); - } + socialAnalytics.Received(1).SendPopulatedChannelJoined("channelName", ChannelJoinedSource.Link, "auto"); + } - [Test] - public void RemoveChannelWhenLeaveIsConfirmed() - { - controller.Initialize(view); + [Test] + public void RemoveChannelWhenLeaveIsConfirmed() + { + controller.Initialize(view); - chatController.GetAllocatedChannel("channelId") - .Returns(new Channel("channelId", "channelName", 0, 0, true, false, "")); + chatController.GetAllocatedChannel("channelId") + .Returns(new Channel("channelId", "channelName", 0, 0, true, false, "")); - dataStore.channels.channelLeaveSource.Set(ChannelLeaveSource.Command); + dataStore.channels.channelLeaveSource.Set(ChannelLeaveSource.Command); - chatController.OnChannelLeft += Raise.Event>("channelId"); + chatController.OnChannelLeft += Raise.Event>("channelId"); - socialAnalytics.Received(1).SendLeaveChannel("channelName", ChannelLeaveSource.Command); - view.Received(1).RemovePublicChat("channelId"); - } + socialAnalytics.Received(1).SendLeaveChannel("channelName", ChannelLeaveSource.Command); + view.Received(1).RemovePublicChat("channelId"); + } - [Test] - public void RequestJoinedChannelsWhenChatInitializes() - { - controller.Initialize(view); + [Test] + public void RequestJoinedChannelsWhenChatInitializes() + { + controller.Initialize(view); - chatController.OnInitialized += Raise.Event(); + chatController.OnInitialized += Raise.Event(); - chatController.Received(1).GetJoinedChannels(10, 0); - } + chatController.Received(1).GetJoinedChannels(10, 0); + } - [Test] - public void ShowConnectWalletWhenIsGuest() - { - ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID, hasConnectedWeb3 = false }); + [Test] + public void ShowConnectWalletWhenIsGuest() + { + ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID, hasConnectedWeb3 = false }); - controller.Initialize(view, false); - controller.SetVisibility(true); + controller.Initialize(view, false); + controller.SetVisibility(true); - view.Received(1).ShowConnectWallet(); - view.DidNotReceive().HideConnectWallet(); - } + view.Received(1).ShowConnectWallet(); + view.DidNotReceive().HideConnectWallet(); + } - [Test] - public void ShowConnectWalletWhenIsGuestAndTheProfileUpdates() - { - ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID, hasConnectedWeb3 = true }); + [Test] + public void ShowConnectWalletWhenIsGuestAndTheProfileUpdates() + { + ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID, hasConnectedWeb3 = true }); - controller.Initialize(view, false); - controller.SetVisibility(true); - view.ClearReceivedCalls(); + controller.Initialize(view, false); + controller.SetVisibility(true); + view.ClearReceivedCalls(); - ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID, hasConnectedWeb3 = false }); + ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID, hasConnectedWeb3 = false }); - view.Received(1).ShowConnectWallet(); - view.DidNotReceive().HideConnectWallet(); - } + view.Received(1).ShowConnectWallet(); + view.DidNotReceive().HideConnectWallet(); + } - [Test] - public void HideConnectWalletWhenIsAuthenticatedUser() - { - ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID, hasConnectedWeb3 = true }); + [Test] + public void HideConnectWalletWhenIsAuthenticatedUser() + { + ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID, hasConnectedWeb3 = true }); - controller.Initialize(view, false); - controller.SetVisibility(true); + controller.Initialize(view, false); + controller.SetVisibility(true); - view.Received(1).HideConnectWallet(); - view.DidNotReceive().ShowConnectWallet(); - } + view.Received(1).HideConnectWallet(); + view.DidNotReceive().ShowConnectWallet(); + } - [Test] - public void HideConnectWalletWhenIsAuthenticatedUserAndProfileUpdates() - { - ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID, hasConnectedWeb3 = true }); + [Test] + public void HideConnectWalletWhenIsAuthenticatedUserAndProfileUpdates() + { + ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID, hasConnectedWeb3 = true }); - controller.Initialize(view, false); - controller.SetVisibility(true); - view.ClearReceivedCalls(); + controller.Initialize(view, false); + controller.SetVisibility(true); + view.ClearReceivedCalls(); - ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID, name = "bleh" }); + ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID, name = "bleh" }); - view.Received(1).HideConnectWallet(); - view.DidNotReceive().ShowConnectWallet(); - } + view.Received(1).HideConnectWallet(); + view.DidNotReceive().ShowConnectWallet(); + } - [Test] - public void SignUpWhenViewRequires() - { - controller.Initialize(view); + [Test] + public void SignUpWhenViewRequires() + { + controller.Initialize(view); - view.OnSignUp += Raise.Event(); + view.OnSignUp += Raise.Event(); - userProfileBridge.Received(1).SignUp(); - } + userProfileBridge.Received(1).SignUp(); + } - [Test] - public void OpenWalletWebsite() - { - controller.Initialize(view); + [Test] + public void OpenWalletWebsite() + { + controller.Initialize(view); - view.OnRequireWalletReadme += Raise.Event(); + view.OnRequireWalletReadme += Raise.Event(); - browserBridge.Received(1).OpenUrl("https://docs.decentraland.org/player/blockchain-integration/get-a-wallet/"); - } + browserBridge.Received(1).OpenUrl("https://docs.decentraland.org/player/blockchain-integration/get-a-wallet/"); + } - [Test] - public void ClearOfflineMessagesOnlyTheFirstTime() - { - controller.Initialize(view); - chatController.ClearReceivedCalls(); + [Test] + public void ClearOfflineMessagesOnlyTheFirstTime() + { + controller.Initialize(view); + chatController.ClearReceivedCalls(); - chatController.OnChannelUpdated += Raise.Event>( - new Channel("channelId", "channelName", 0, 1, true, false, "")); + chatController.OnChannelUpdated += Raise.Event>( + new Channel("channelId", "channelName", 0, 1, true, false, "")); - chatController.OnChannelUpdated += Raise.Event>( - new Channel("otherChannelId", "otherChannelName", 0, 1, true, false, "")); + chatController.OnChannelUpdated += Raise.Event>( + new Channel("otherChannelId", "otherChannelName", 0, 1, true, false, "")); - chatController.OnChannelUpdated += Raise.Event>( - new Channel("channelId", "channelName", 0, 1, true, false, "")); + chatController.OnChannelUpdated += Raise.Event>( + new Channel("channelId", "channelName", 0, 1, true, false, "")); - chatController.Received(1).MarkChannelMessagesAsSeen("channelId"); - chatController.Received(1).MarkChannelMessagesAsSeen("otherChannelId"); - } + chatController.Received(1).MarkChannelMessagesAsSeen("channelId"); + chatController.Received(1).MarkChannelMessagesAsSeen("otherChannelId"); + } - [Test] - public void JoinAutomaticChannelWhenChatInitializes() - { - channelsFeatureFlagService.GetAutoJoinChannelsList() - .Returns(new AutomaticJoinChannelList - { - automaticJoinChannelList = new[] + [Test] + public void JoinAutomaticChannelWhenChatInitializes() + { + channelsFeatureFlagService.GetAutoJoinChannelsList() + .Returns(new AutomaticJoinChannelList { - new AutomaticJoinChannel + automaticJoinChannelList = new[] { - channelId = "automatic-channel", - enableNotifications = false + new AutomaticJoinChannel + { + channelId = "automatic-channel", + enableNotifications = false + } } - } - }); - - controller.Initialize(view); - chatController.ClearReceivedCalls(); - - chatController.OnInitialized += Raise.Event(); - - chatController.Received(1).JoinOrCreateChannel("automatic-channel"); - chatController.Received(1).MuteChannel("automatic-channel"); - } - - [Test] - public void HideLoadingOfChannelsWhenIsGuest() - { - chatController.IsInitialized.Returns(false); - ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID, hasConnectedWeb3 = false }); - controller.Initialize(view, false); - - controller.SetVisibility(true); - - view.Received(1).HideChannelsLoading(); - } - - [Test] - public void DoNotAddThePrivateChatWhenUserIsNotFriend() - { - const string MESSAGE_BODY = "wow"; - - friendsController.GetFriendshipStatus(FRIEND_ID) - .Returns(UniTask.FromResult(FriendshipStatus.NOT_FRIEND)); - GivenProfile(FRIEND_ID); - - controller.Initialize(view); - - chatController.OnAddMessage += Raise.Event>( - new[] { new ChatMessage(ChatMessage.Type.PRIVATE, FRIEND_ID, MESSAGE_BODY) }); - - view.DidNotReceiveWithAnyArgs().SetPrivateChat(default(PrivateChatModel)); - } - - private void GivenProfile(string userId) - { - var friendProfile = ScriptableObject.CreateInstance(); - friendProfile.UpdateData(new UserProfileModel { userId = userId, name = userId }); - userProfileBridge.Get(userId).Returns(friendProfile); - } - - private void GivenFriend(string friendId, PresenceStatus presence) - { - var friendProfile = ScriptableObject.CreateInstance(); - friendProfile.UpdateData(new UserProfileModel { userId = friendId, name = friendId }); - userProfileBridge.Get(friendId).Returns(friendProfile); - friendsController.IsFriend(friendId).Returns(true); - friendsController.GetFriendshipStatus(friendId, Arg.Any()) - .Returns(UniTask.FromResult(FriendshipStatus.FRIEND)); - - friendsController.GetUserStatus(friendId) - .Returns(new UserStatus - { userId = friendId, presence = presence, friendshipStatus = FriendshipStatus.FRIEND }); + }); + + controller.Initialize(view); + chatController.ClearReceivedCalls(); + + chatController.OnInitialized += Raise.Event(); + + chatController.Received(1).JoinOrCreateChannel("automatic-channel"); + chatController.Received(1).MuteChannel("automatic-channel"); + } + + [Test] + public void HideLoadingOfChannelsWhenIsGuest() + { + chatController.IsInitialized.Returns(false); + ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID, hasConnectedWeb3 = false }); + controller.Initialize(view, false); + + controller.SetVisibility(true); + + view.Received(1).HideChannelsLoading(); + } + + [Test] + public void DoNotAddThePrivateChatWhenUserIsNotFriend() + { + const string MESSAGE_BODY = "wow"; + + friendsController.GetFriendshipStatus(FRIEND_ID) + .Returns(UniTask.FromResult(FriendshipStatus.NOT_FRIEND)); + GivenProfile(FRIEND_ID); + + controller.Initialize(view); + + chatController.OnAddMessage += Raise.Event>( + new[] { new ChatMessage(ChatMessage.Type.PRIVATE, FRIEND_ID, MESSAGE_BODY) }); + + view.DidNotReceiveWithAnyArgs().SetPrivateChat(default(PrivateChatModel)); + } + + private void GivenProfile(string userId) + { + var friendProfile = ScriptableObject.CreateInstance(); + friendProfile.UpdateData(new UserProfileModel { userId = userId, name = userId }); + userProfileBridge.Get(userId).Returns(friendProfile); + } + + private void GivenFriend(string friendId, PresenceStatus presence) + { + var friendProfile = ScriptableObject.CreateInstance(); + friendProfile.UpdateData(new UserProfileModel { userId = friendId, name = friendId }); + userProfileBridge.Get(friendId).Returns(friendProfile); + friendsController.IsFriend(friendId).Returns(true); + friendsController.GetFriendshipStatus(friendId, Arg.Any()) + .Returns(UniTask.FromResult(FriendshipStatus.FRIEND)); + + friendsController.GetUserStatus(friendId) + .Returns(new UserStatus + { userId = friendId, presence = presence, friendshipStatus = FriendshipStatus.FRIEND }); + } } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/WorldChatWindowHUDTests.asmdef b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/WorldChatWindowHUDTests.asmdef index 978f61f432..c8ba907468 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/WorldChatWindowHUDTests.asmdef +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/WorldChatWindowHUDTests.asmdef @@ -32,7 +32,8 @@ "GUID:4720e174f2805c74bb7aa94cc8bb5bf8", "GUID:f51ebe6a0ceec4240a699833d6309b23", "GUID:2995626b54c60644988f134a69a77450", - "GUID:c34e38f41494f834abff029ddf82af43" + "GUID:c34e38f41494f834abff029ddf82af43", + "GUID:e5b8a8ed154ad624f99bcb73d3284a90" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/TimestampExtensions.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/TimestampExtensions.cs deleted file mode 100644 index e29497febb..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/TimestampExtensions.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; - -public static class TimestampExtensions -{ - public static DateTime ToDateTimeFromUnixTimestamp(this ulong milliseconds) - { - var result = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); - return result.AddMilliseconds(milliseconds); - } -} \ No newline at end of file diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/TimestampExtensions.cs.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/TimestampExtensions.cs.meta deleted file mode 100644 index 4dec5036f0..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/TimestampExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1b8d04eefe9230c48a04b7e5b7168076 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/WorldChatWindowComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/WorldChatWindowComponentView.cs index a2b1ce3583..6fa8238728 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/WorldChatWindowComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/WorldChatWindowComponentView.cs @@ -1,3 +1,4 @@ +using DCL.Social.Chat; using System; using System.Collections; using System.Collections.Generic; @@ -8,7 +9,7 @@ using UnityEngine; using UnityEngine.UI; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { public class WorldChatWindowComponentView : BaseComponentView, IWorldChatWindowView, IComponentModelConfig { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/WorldChatWindowController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/WorldChatWindowController.cs index 4d080c9a63..5d0e82d0f2 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/WorldChatWindowController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/WorldChatWindowController.cs @@ -1,5 +1,4 @@ using Cysharp.Threading.Tasks; -using DCL; using DCL.Chat; using DCL.Chat.Channels; using DCL.Interface; @@ -13,734 +12,737 @@ using DCL.Social.Friends; using UnityEngine; using Channel = DCL.Chat.Channels.Channel; -using DCL.Chat.HUD; +using DCL.Social.Chat; using DCL.Tasks; -public class WorldChatWindowController : IHUD +namespace DCL.Social.Chat { - private const int DMS_PAGE_SIZE = 30; - private const int USER_DM_ENTRIES_TO_REQUEST_FOR_SEARCH = 20; - private const int CHANNELS_PAGE_SIZE = 10; - private const int MINUTES_FOR_AUTOMATIC_CHANNELS_INFO_RELOADING = 1; - - private readonly IUserProfileBridge userProfileBridge; - private readonly IFriendsController friendsController; - private readonly IChatController chatController; - private readonly DataStore dataStore; - private readonly IMouseCatcher mouseCatcher; - private readonly ISocialAnalytics socialAnalytics; - private readonly IChannelsFeatureFlagService channelsFeatureFlagService; - private readonly IBrowserBridge browserBridge; - private readonly RendererState rendererState; - private readonly DataStore_Mentions mentionsDataStore; - private readonly Dictionary publicChannels = new Dictionary(); - private readonly Dictionary lastPrivateMessages = new Dictionary(); - private readonly HashSet channelsClearedUnseenNotifications = new HashSet(); - private HashSet autoJoinChannelList => dataStore.HUDs.autoJoinChannelList.Get(); - private BaseVariable> visibleTaskbarPanels => dataStore.HUDs.visibleTaskbarPanels; - private int hiddenDMs; - private string currentSearch = ""; - private DateTime channelsRequestTimestamp; - private bool areDMsRequestedByFirstTime; - private int lastSkipForDMs; - private CancellationTokenSource hideLoadingCancellationToken = new CancellationTokenSource(); - private IWorldChatWindowView view; - private UserProfile ownUserProfile; - private bool isRequestingDMs; - private bool areUnseenMessajesRequestedByFirstTime; - private string channelToJoinAtTheBeginning; - private CancellationTokenSource hideChannelsLoadingCancellationToken = new CancellationTokenSource(); - private CancellationTokenSource hidePrivateChatsLoadingCancellationToken = new CancellationTokenSource(); - private CancellationTokenSource reloadingChannelsInfoCancellationToken = new CancellationTokenSource(); - private CancellationTokenSource showDMsCancellationToken = new (); - private bool showOnlyOnlineMembersOnPublicChannels => !dataStore.featureFlags.flags.Get().IsFeatureEnabled("matrix_presence_disabled"); - - private bool isVisible = true; - public IWorldChatWindowView View => view; - - public event Action OnCloseView; - public event Action OnOpenPrivateChat; - public event Action OnOpenPublicChat; - public event Action OnOpenChannel; - public event Action OnOpen; - public event Action OnOpenChannelSearch; - public event Action OnOpenChannelCreation; - public event Action OnOpenChannelLeave; - - public WorldChatWindowController( - IUserProfileBridge userProfileBridge, - IFriendsController friendsController, - IChatController chatController, - DataStore dataStore, - IMouseCatcher mouseCatcher, - ISocialAnalytics socialAnalytics, - IChannelsFeatureFlagService channelsFeatureFlagService, - IBrowserBridge browserBridge, - RendererState rendererState, - DataStore_Mentions mentionsDataStore) - { - this.userProfileBridge = userProfileBridge; - this.friendsController = friendsController; - this.chatController = chatController; - this.dataStore = dataStore; - this.mouseCatcher = mouseCatcher; - this.socialAnalytics = socialAnalytics; - this.channelsFeatureFlagService = channelsFeatureFlagService; - this.browserBridge = browserBridge; - this.rendererState = rendererState; - this.mentionsDataStore = mentionsDataStore; - } - - public void Initialize(IWorldChatWindowView view, bool isVisible = true) - { - this.view = view; - view.Initialize(chatController, mentionsDataStore); - - if (mouseCatcher != null) - mouseCatcher.OnMouseLock += HandleViewCloseRequest; - - view.OnClose += HandleViewCloseRequest; - view.OnOpenPrivateChat += OpenPrivateChat; - view.OnOpenPublicChat += OpenPublicChat; - view.OnSearchChatRequested += SearchChats; - view.OnRequireMorePrivateChats += ShowMorePrivateChats; - view.OnSignUp += SignUp; - view.OnRequireWalletReadme += OpenWalletReadme; - - ownUserProfile = userProfileBridge.GetOwn(); - if (ownUserProfile != null) - ownUserProfile.OnUpdate += OnUserProfileUpdate; - - var channel = chatController.GetAllocatedChannel(ChatUtils.NEARBY_CHANNEL_ID); - publicChannels[ChatUtils.NEARBY_CHANNEL_ID] = new PublicChatModel(ChatUtils.NEARBY_CHANNEL_ID, channel.Name, - channel.Description, - channel.Joined, - channel.MemberCount, - false, - showOnlyOnlineMembersOnPublicChannels); - view.SetPublicChat(publicChannels[ChatUtils.NEARBY_CHANNEL_ID]); - - if (!friendsController.IsInitialized) - if (ownUserProfile?.hasConnectedWeb3 ?? false) - view.ShowPrivateChatsLoading(); - - chatController.OnInitialized += HandleChatInitialization; - chatController.OnAddMessage += HandleMessageAdded; - friendsController.OnAddFriendsWithDirectMessages += HandleFriendsWithDirectMessagesAdded; - friendsController.OnUpdateUserStatus += HandleUserStatusChanged; - friendsController.OnUpdateFriendship += HandleFriendshipUpdated; - friendsController.OnInitialized += HandleFriendsControllerInitialization; + public class WorldChatWindowController : IHUD + { + private const int DMS_PAGE_SIZE = 30; + private const int USER_DM_ENTRIES_TO_REQUEST_FOR_SEARCH = 20; + private const int CHANNELS_PAGE_SIZE = 10; + private const int MINUTES_FOR_AUTOMATIC_CHANNELS_INFO_RELOADING = 1; + + private readonly IUserProfileBridge userProfileBridge; + private readonly IFriendsController friendsController; + private readonly IChatController chatController; + private readonly DataStore dataStore; + private readonly IMouseCatcher mouseCatcher; + private readonly ISocialAnalytics socialAnalytics; + private readonly IChannelsFeatureFlagService channelsFeatureFlagService; + private readonly IBrowserBridge browserBridge; + private readonly RendererState rendererState; + private readonly DataStore_Mentions mentionsDataStore; + private readonly Dictionary publicChannels = new Dictionary(); + private readonly Dictionary lastPrivateMessages = new Dictionary(); + private readonly HashSet channelsClearedUnseenNotifications = new HashSet(); + private HashSet autoJoinChannelList => dataStore.HUDs.autoJoinChannelList.Get(); + private BaseVariable> visibleTaskbarPanels => dataStore.HUDs.visibleTaskbarPanels; + private int hiddenDMs; + private string currentSearch = ""; + private DateTime channelsRequestTimestamp; + private bool areDMsRequestedByFirstTime; + private int lastSkipForDMs; + private CancellationTokenSource hideLoadingCancellationToken = new CancellationTokenSource(); + private IWorldChatWindowView view; + private UserProfile ownUserProfile; + private bool isRequestingDMs; + private bool areUnseenMessajesRequestedByFirstTime; + private string channelToJoinAtTheBeginning; + private CancellationTokenSource hideChannelsLoadingCancellationToken = new CancellationTokenSource(); + private CancellationTokenSource hidePrivateChatsLoadingCancellationToken = new CancellationTokenSource(); + private CancellationTokenSource reloadingChannelsInfoCancellationToken = new CancellationTokenSource(); + private CancellationTokenSource showDMsCancellationToken = new (); + private bool showOnlyOnlineMembersOnPublicChannels => !dataStore.featureFlags.flags.Get().IsFeatureEnabled("matrix_presence_disabled"); + + private bool isVisible = true; + public IWorldChatWindowView View => view; + + public event Action OnCloseView; + public event Action OnOpenPrivateChat; + public event Action OnOpenPublicChat; + public event Action OnOpenChannel; + public event Action OnOpen; + public event Action OnOpenChannelSearch; + public event Action OnOpenChannelCreation; + public event Action OnOpenChannelLeave; + + public WorldChatWindowController( + IUserProfileBridge userProfileBridge, + IFriendsController friendsController, + IChatController chatController, + DataStore dataStore, + IMouseCatcher mouseCatcher, + ISocialAnalytics socialAnalytics, + IChannelsFeatureFlagService channelsFeatureFlagService, + IBrowserBridge browserBridge, + RendererState rendererState, + DataStore_Mentions mentionsDataStore) + { + this.userProfileBridge = userProfileBridge; + this.friendsController = friendsController; + this.chatController = chatController; + this.dataStore = dataStore; + this.mouseCatcher = mouseCatcher; + this.socialAnalytics = socialAnalytics; + this.channelsFeatureFlagService = channelsFeatureFlagService; + this.browserBridge = browserBridge; + this.rendererState = rendererState; + this.mentionsDataStore = mentionsDataStore; + } - if (channelsFeatureFlagService.IsChannelsFeatureEnabled()) + public void Initialize(IWorldChatWindowView view, bool isVisible = true) { - channelsFeatureFlagService.OnAllowedToCreateChannelsChanged += OnAllowedToCreateChannelsChanged; + this.view = view; + view.Initialize(chatController, mentionsDataStore); + + if (mouseCatcher != null) + mouseCatcher.OnMouseLock += HandleViewCloseRequest; + + view.OnClose += HandleViewCloseRequest; + view.OnOpenPrivateChat += OpenPrivateChat; + view.OnOpenPublicChat += OpenPublicChat; + view.OnSearchChatRequested += SearchChats; + view.OnRequireMorePrivateChats += ShowMorePrivateChats; + view.OnSignUp += SignUp; + view.OnRequireWalletReadme += OpenWalletReadme; + + ownUserProfile = userProfileBridge.GetOwn(); + if (ownUserProfile != null) + ownUserProfile.OnUpdate += OnUserProfileUpdate; + + var channel = chatController.GetAllocatedChannel(ChatUtils.NEARBY_CHANNEL_ID); + publicChannels[ChatUtils.NEARBY_CHANNEL_ID] = new PublicChatModel(ChatUtils.NEARBY_CHANNEL_ID, channel.Name, + channel.Description, + channel.Joined, + channel.MemberCount, + false, + showOnlyOnlineMembersOnPublicChannels); + view.SetPublicChat(publicChannels[ChatUtils.NEARBY_CHANNEL_ID]); + + if (!friendsController.IsInitialized) + if (ownUserProfile?.hasConnectedWeb3 ?? false) + view.ShowPrivateChatsLoading(); + + chatController.OnInitialized += HandleChatInitialization; + chatController.OnAddMessage += HandleMessageAdded; + friendsController.OnAddFriendsWithDirectMessages += HandleFriendsWithDirectMessagesAdded; + friendsController.OnUpdateUserStatus += HandleUserStatusChanged; + friendsController.OnUpdateFriendship += HandleFriendshipUpdated; + friendsController.OnInitialized += HandleFriendsControllerInitialization; - view.OnOpenChannelSearch += OpenChannelSearch; - view.OnLeaveChannel += LeaveChannel; - view.OnCreateChannel += OpenChannelCreationWindow; + if (channelsFeatureFlagService.IsChannelsFeatureEnabled()) + { + channelsFeatureFlagService.OnAllowedToCreateChannelsChanged += OnAllowedToCreateChannelsChanged; + + view.OnOpenChannelSearch += OpenChannelSearch; + view.OnLeaveChannel += LeaveChannel; + view.OnCreateChannel += OpenChannelCreationWindow; + + chatController.OnChannelUpdated += HandleChannelUpdated; + chatController.OnChannelJoined += HandleChannelJoined; + chatController.OnAutoChannelJoined += HandleAutoChannelJoined; + chatController.OnJoinChannelError += HandleJoinChannelError; + chatController.OnChannelLeaveError += HandleLeaveChannelError; + chatController.OnChannelLeft += HandleChannelLeft; + chatController.OnAskForJoinChannel += HandleAskForJoinChannel; + dataStore.channels.channelToBeOpened.OnChange += HandleChannelOpened; + + view.ShowChannelsLoading(); + view.SetSearchAndCreateContainerActive(true); + } + else + { + view.HideChannelsLoading(); + view.SetSearchAndCreateContainerActive(false); + } - chatController.OnChannelUpdated += HandleChannelUpdated; - chatController.OnChannelJoined += HandleChannelJoined; - chatController.OnAutoChannelJoined += HandleAutoChannelJoined; - chatController.OnJoinChannelError += HandleJoinChannelError; - chatController.OnChannelLeaveError += HandleLeaveChannelError; - chatController.OnChannelLeft += HandleChannelLeft; - chatController.OnAskForJoinChannel += HandleAskForJoinChannel; - dataStore.channels.channelToBeOpened.OnChange += HandleChannelOpened; + view.SetChannelsPromoteLabelVisible(channelsFeatureFlagService.IsPromoteChannelsToastEnabled()); - view.ShowChannelsLoading(); - view.SetSearchAndCreateContainerActive(true); + SetVisibility(isVisible); + this.isVisible = isVisible; } - else + + public void Dispose() { - view.HideChannelsLoading(); - view.SetSearchAndCreateContainerActive(false); + view.OnClose -= HandleViewCloseRequest; + view.OnOpenPrivateChat -= OpenPrivateChat; + view.OnOpenPublicChat -= OpenPublicChat; + view.OnSearchChatRequested -= SearchChats; + view.OnRequireMorePrivateChats -= ShowMorePrivateChats; + view.OnOpenChannelSearch -= OpenChannelSearch; + view.OnCreateChannel -= OpenChannelCreationWindow; + view.OnSignUp -= SignUp; + view.OnRequireWalletReadme -= OpenWalletReadme; + view.Dispose(); + chatController.OnInitialized -= HandleChatInitialization; + chatController.OnAddMessage -= HandleMessageAdded; + chatController.OnChannelUpdated -= HandleChannelUpdated; + chatController.OnChannelJoined -= HandleChannelJoined; + chatController.OnAutoChannelJoined -= HandleAutoChannelJoined; + chatController.OnJoinChannelError -= HandleJoinChannelError; + chatController.OnChannelLeaveError -= HandleLeaveChannelError; + chatController.OnChannelLeft -= HandleChannelLeft; + chatController.OnAskForJoinChannel -= HandleAskForJoinChannel; + friendsController.OnAddFriendsWithDirectMessages -= HandleFriendsWithDirectMessagesAdded; + friendsController.OnUpdateUserStatus -= HandleUserStatusChanged; + friendsController.OnUpdateFriendship -= HandleFriendshipUpdated; + friendsController.OnInitialized -= HandleFriendsControllerInitialization; + dataStore.channels.channelToBeOpened.OnChange -= HandleChannelOpened; + rendererState.OnChange -= HandleAskForJoinChannelAfterRendererState; + + if (ownUserProfile != null) + ownUserProfile.OnUpdate -= OnUserProfileUpdate; + + hideChannelsLoadingCancellationToken?.SafeCancelAndDispose(); + reloadingChannelsInfoCancellationToken.SafeCancelAndDispose(); + showDMsCancellationToken.SafeCancelAndDispose(); + + channelsFeatureFlagService.OnAllowedToCreateChannelsChanged -= OnAllowedToCreateChannelsChanged; } - view.SetChannelsPromoteLabelVisible(channelsFeatureFlagService.IsPromoteChannelsToastEnabled()); - - SetVisibility(isVisible); - this.isVisible = isVisible; - } - - public void Dispose() - { - view.OnClose -= HandleViewCloseRequest; - view.OnOpenPrivateChat -= OpenPrivateChat; - view.OnOpenPublicChat -= OpenPublicChat; - view.OnSearchChatRequested -= SearchChats; - view.OnRequireMorePrivateChats -= ShowMorePrivateChats; - view.OnOpenChannelSearch -= OpenChannelSearch; - view.OnCreateChannel -= OpenChannelCreationWindow; - view.OnSignUp -= SignUp; - view.OnRequireWalletReadme -= OpenWalletReadme; - view.Dispose(); - chatController.OnInitialized -= HandleChatInitialization; - chatController.OnAddMessage -= HandleMessageAdded; - chatController.OnChannelUpdated -= HandleChannelUpdated; - chatController.OnChannelJoined -= HandleChannelJoined; - chatController.OnAutoChannelJoined -= HandleAutoChannelJoined; - chatController.OnJoinChannelError -= HandleJoinChannelError; - chatController.OnChannelLeaveError -= HandleLeaveChannelError; - chatController.OnChannelLeft -= HandleChannelLeft; - chatController.OnAskForJoinChannel -= HandleAskForJoinChannel; - friendsController.OnAddFriendsWithDirectMessages -= HandleFriendsWithDirectMessagesAdded; - friendsController.OnUpdateUserStatus -= HandleUserStatusChanged; - friendsController.OnUpdateFriendship -= HandleFriendshipUpdated; - friendsController.OnInitialized -= HandleFriendsControllerInitialization; - dataStore.channels.channelToBeOpened.OnChange -= HandleChannelOpened; - rendererState.OnChange -= HandleAskForJoinChannelAfterRendererState; - - if (ownUserProfile != null) - ownUserProfile.OnUpdate -= OnUserProfileUpdate; - - hideChannelsLoadingCancellationToken?.SafeCancelAndDispose(); - reloadingChannelsInfoCancellationToken.SafeCancelAndDispose(); - showDMsCancellationToken.SafeCancelAndDispose(); - - channelsFeatureFlagService.OnAllowedToCreateChannelsChanged -= OnAllowedToCreateChannelsChanged; - } - - public void SetVisibility(bool visible) - { - if (isVisible == visible) - return; - - isVisible = visible; - SetVisiblePanelList(visible); - - if (visible) + public void SetVisibility(bool visible) { - view.Show(); - OnOpen?.Invoke(); + if (isVisible == visible) + return; - if (friendsController.IsInitialized && !areDMsRequestedByFirstTime) - { - RequestFriendsWithDirectMessages(); - RequestUnreadMessages(); - } + isVisible = visible; + SetVisiblePanelList(visible); - if (channelsFeatureFlagService.IsChannelsFeatureEnabled()) + if (visible) { - if (chatController.IsInitialized) + view.Show(); + OnOpen?.Invoke(); + + if (friendsController.IsInitialized && !areDMsRequestedByFirstTime) { - RequestJoinedChannels(); - SetAutomaticChannelsInfoUpdatingActive(true); + RequestFriendsWithDirectMessages(); + RequestUnreadMessages(); } - else if (ownUserProfile.isGuest) + + if (channelsFeatureFlagService.IsChannelsFeatureEnabled()) { - // TODO: channels are not allowed for guests. When we support it in the future, remove this call - view.HideChannelsLoading(); + if (chatController.IsInitialized) + { + RequestJoinedChannels(); + SetAutomaticChannelsInfoUpdatingActive(true); + } + else if (ownUserProfile.isGuest) + { + // TODO: channels are not allowed for guests. When we support it in the future, remove this call + view.HideChannelsLoading(); + } + + if (!areUnseenMessajesRequestedByFirstTime) + RequestUnreadChannelsMessages(); } - if (!areUnseenMessajesRequestedByFirstTime) - RequestUnreadChannelsMessages(); + if (ownUserProfile?.isGuest ?? false) + view.ShowConnectWallet(); + else + view.HideConnectWallet(); } - - if (ownUserProfile?.isGuest ?? false) - view.ShowConnectWallet(); else - view.HideConnectWallet(); + { + view.DisableSearchMode(); + view.Hide(); + SetAutomaticChannelsInfoUpdatingActive(false); + } } - else + + private void OpenChannelCreationWindow() { - view.DisableSearchMode(); - view.Hide(); - SetAutomaticChannelsInfoUpdatingActive(false); + dataStore.channels.channelJoinedSource.Set(ChannelJoinedSource.ConversationList); + OnOpenChannelCreation?.Invoke(); } - } - private void OpenChannelCreationWindow() - { - dataStore.channels.channelJoinedSource.Set(ChannelJoinedSource.ConversationList); - OnOpenChannelCreation?.Invoke(); - } + private void SetVisiblePanelList(bool visible) + { + HashSet newSet = visibleTaskbarPanels.Get(); + if (visible) + newSet.Add("WorldChatPanel"); + else + newSet.Remove("WorldChatPanel"); - private void SetVisiblePanelList(bool visible) - { - HashSet newSet = visibleTaskbarPanels.Get(); - if (visible) - newSet.Add("WorldChatPanel"); - else - newSet.Remove("WorldChatPanel"); + visibleTaskbarPanels.Set(newSet, true); + } - visibleTaskbarPanels.Set(newSet, true); - } + private void LeaveChannel(string channelId) + { + dataStore.channels.channelLeaveSource.Set(ChannelLeaveSource.ConversationList); + OnOpenChannelLeave?.Invoke(channelId); + } - private void LeaveChannel(string channelId) - { - dataStore.channels.channelLeaveSource.Set(ChannelLeaveSource.ConversationList); - OnOpenChannelLeave?.Invoke(channelId); - } + private void RequestJoinedChannels() + { + if ((DateTime.UtcNow - channelsRequestTimestamp).TotalSeconds < 3) return; - private void RequestJoinedChannels() - { - if ((DateTime.UtcNow - channelsRequestTimestamp).TotalSeconds < 3) return; + // skip=0: we do not support pagination for channels, it is supposed that a user can have a limited amount of joined channels + chatController.GetJoinedChannels(CHANNELS_PAGE_SIZE, 0); + channelsRequestTimestamp = DateTime.UtcNow; - // skip=0: we do not support pagination for channels, it is supposed that a user can have a limited amount of joined channels - chatController.GetJoinedChannels(CHANNELS_PAGE_SIZE, 0); - channelsRequestTimestamp = DateTime.UtcNow; + hideChannelsLoadingCancellationToken?.Cancel(); + hideChannelsLoadingCancellationToken = new CancellationTokenSource(); + WaitThenHideChannelsLoading(hideChannelsLoadingCancellationToken.Token).Forget(); + } - hideChannelsLoadingCancellationToken?.Cancel(); - hideChannelsLoadingCancellationToken = new CancellationTokenSource(); - WaitThenHideChannelsLoading(hideChannelsLoadingCancellationToken.Token).Forget(); - } + private async UniTask WaitThenHideChannelsLoading(CancellationToken cancellationToken) + { + await UniTask.Delay(3000, cancellationToken: cancellationToken); + if (cancellationToken.IsCancellationRequested) return; + view.HideChannelsLoading(); + } - private async UniTask WaitThenHideChannelsLoading(CancellationToken cancellationToken) - { - await UniTask.Delay(3000, cancellationToken: cancellationToken); - if (cancellationToken.IsCancellationRequested) return; - view.HideChannelsLoading(); - } + private void HandleChatInitialization() + { + // we do request joined channels as soon as possible to be able to display messages correctly in the notification panel + RequestJoinedChannels(); + ConnectToAutoJoinChannels(); + } - private void HandleChatInitialization() - { - // we do request joined channels as soon as possible to be able to display messages correctly in the notification panel - RequestJoinedChannels(); - ConnectToAutoJoinChannels(); - } + private void ConnectToAutoJoinChannels() + { + AutomaticJoinChannelList joinChannelList = channelsFeatureFlagService.GetAutoJoinChannelsList(); + if (joinChannelList == null) return; + if (joinChannelList.automaticJoinChannelList == null) return; - private void ConnectToAutoJoinChannels() - { - AutomaticJoinChannelList joinChannelList = channelsFeatureFlagService.GetAutoJoinChannelsList(); - if (joinChannelList == null) return; - if (joinChannelList.automaticJoinChannelList == null) return; + foreach (var channel in joinChannelList.automaticJoinChannelList) + { + var channelId = channel.channelId; + if (string.IsNullOrEmpty(channelId)) continue; + autoJoinChannelList.Add(channelId); + chatController.JoinOrCreateChannel(channelId); + if (!channel.enableNotifications) + chatController.MuteChannel(channelId); + } + } - foreach (var channel in joinChannelList.automaticJoinChannelList) + private void HandleFriendsControllerInitialization() { - var channelId = channel.channelId; - if (string.IsNullOrEmpty(channelId)) continue; - autoJoinChannelList.Add(channelId); - chatController.JoinOrCreateChannel(channelId); - if (!channel.enableNotifications) - chatController.MuteChannel(channelId); + if (view.IsActive && !areDMsRequestedByFirstTime) + { + RequestFriendsWithDirectMessages(); + RequestUnreadMessages(); + } + else + view.HidePrivateChatsLoading(); } - } - private void HandleFriendsControllerInitialization() - { - if (view.IsActive && !areDMsRequestedByFirstTime) + private void OpenPrivateChat(string userId) { - RequestFriendsWithDirectMessages(); - RequestUnreadMessages(); + OnOpenPrivateChat?.Invoke(userId); } - else - view.HidePrivateChatsLoading(); - } - - private void OpenPrivateChat(string userId) - { - OnOpenPrivateChat?.Invoke(userId); - } - private void OpenPublicChat(string channelId) - { - if (channelId == ChatUtils.NEARBY_CHANNEL_ID) - OnOpenPublicChat?.Invoke(channelId); - else - OnOpenChannel?.Invoke(channelId); - } - - private void HandleViewCloseRequest() - { - OnCloseView?.Invoke(); - SetVisibility(false); - } + private void OpenPublicChat(string channelId) + { + if (channelId == ChatUtils.NEARBY_CHANNEL_ID) + OnOpenPublicChat?.Invoke(channelId); + else + OnOpenChannel?.Invoke(channelId); + } - private void HandleFriendshipUpdated(string userId, FriendshipAction friendship) - { - if (friendship != FriendshipAction.APPROVED) + private void HandleViewCloseRequest() { - // show only private chats from friends. Change it whenever the catalyst supports to send pms to any user - view.RemovePrivateChat(userId); + OnCloseView?.Invoke(); + SetVisibility(false); } - } - private void HandleUserStatusChanged(string userId, UserStatus status) - { - if (status.friendshipStatus != FriendshipStatus.FRIEND) + private void HandleFriendshipUpdated(string userId, FriendshipAction friendship) { - // show only private chats from friends. Change it whenever the catalyst supports to send pms to any user - view.RemovePrivateChat(userId); + if (friendship != FriendshipAction.APPROVED) + { + // show only private chats from friends. Change it whenever the catalyst supports to send pms to any user + view.RemovePrivateChat(userId); + } } - else + + private void HandleUserStatusChanged(string userId, UserStatus status) { - view.RefreshPrivateChatPresence(userId, status.presence == PresenceStatus.ONLINE); + if (status.friendshipStatus != FriendshipStatus.FRIEND) + { + // show only private chats from friends. Change it whenever the catalyst supports to send pms to any user + view.RemovePrivateChat(userId); + } + else + { + view.RefreshPrivateChatPresence(userId, status.presence == PresenceStatus.ONLINE); + } } - } - private void HandleMessageAdded(ChatMessage[] messages) - { - async UniTaskVoid AddMessages(ChatMessage[] messages, CancellationToken cancellationToken) + private void HandleMessageAdded(ChatMessage[] messages) { - foreach (var message in messages) + async UniTaskVoid AddMessages(ChatMessage[] messages, CancellationToken cancellationToken) { - if (message.messageType != ChatMessage.Type.PRIVATE) continue; + foreach (var message in messages) + { + if (message.messageType != ChatMessage.Type.PRIVATE) continue; - var userId = ExtractRecipientId(message); + var userId = ExtractRecipientId(message); - if (lastPrivateMessages.ContainsKey(userId)) - { - if (message.timestamp > lastPrivateMessages[userId].timestamp) + if (lastPrivateMessages.ContainsKey(userId)) + { + if (message.timestamp > lastPrivateMessages[userId].timestamp) + lastPrivateMessages[userId] = message; + } + else lastPrivateMessages[userId] = message; - } - else - lastPrivateMessages[userId] = message; - try - { - // incoming friend request's message is added as a DM. This check filters it - if (await friendsController.GetFriendshipStatus(userId, cancellationToken) != FriendshipStatus.FRIEND) return; + try + { + // incoming friend request's message is added as a DM. This check filters it + if (await friendsController.GetFriendshipStatus(userId, cancellationToken) != FriendshipStatus.FRIEND) return; - var profile = userProfileBridge.Get(userId) - ?? await userProfileBridge.RequestFullUserProfileAsync(userId, cancellationToken); + var profile = userProfileBridge.Get(userId) + ?? await userProfileBridge.RequestFullUserProfileAsync(userId, cancellationToken); - view.SetPrivateChat(CreatePrivateChatModel(message, profile)); - } - catch (Exception e) when (e is not OperationCanceledException) - { - Debug.LogException(e); + view.SetPrivateChat(CreatePrivateChatModel(message, profile)); + } + catch (Exception e) when (e is not OperationCanceledException) + { + Debug.LogException(e); + } } } - } - AddMessages(messages, showDMsCancellationToken.Token).Forget(); - } + AddMessages(messages, showDMsCancellationToken.Token).Forget(); + } - private void HandleFriendsWithDirectMessagesAdded(List usersWithDM) - { - async UniTaskVoid HandleFriendsWithDirectMessagesAddedAsync(List usersWithDM, CancellationToken cancellationToken) + private void HandleFriendsWithDirectMessagesAdded(List usersWithDM) { - for (var i = 0; i < usersWithDM.Count; i++) + async UniTaskVoid HandleFriendsWithDirectMessagesAddedAsync(List usersWithDM, CancellationToken cancellationToken) { - FriendWithDirectMessages dm = usersWithDM[i]; - - var lastMessage = new ChatMessage + for (var i = 0; i < usersWithDM.Count; i++) { - messageType = ChatMessage.Type.PRIVATE, - body = dm.lastMessageBody, - timestamp = (ulong) dm.lastMessageTimestamp - }; - - string userId = dm.userId; + FriendWithDirectMessages dm = usersWithDM[i]; - if (lastPrivateMessages.ContainsKey(userId)) - { - if (lastMessage.timestamp > lastPrivateMessages[userId].timestamp) - lastPrivateMessages[userId] = lastMessage; - } - else - lastPrivateMessages[userId] = lastMessage; + var lastMessage = new ChatMessage + { + messageType = ChatMessage.Type.PRIVATE, + body = dm.lastMessageBody, + timestamp = (ulong) dm.lastMessageTimestamp + }; - var profile = userProfileBridge.Get(userId); + string userId = dm.userId; - try { profile ??= await userProfileBridge.RequestFullUserProfileAsync(userId, cancellationToken); } - catch (Exception e) when (e is not OperationCanceledException) - { - var fallbackDM = new PrivateChatModel + if (lastPrivateMessages.ContainsKey(userId)) { - recentMessage = lastMessage, - faceSnapshotUrl = "", - isBlocked = ownUserProfile.IsBlocked(userId), - isOnline = false, - userId = userId, - userName = userId, - }; + if (lastMessage.timestamp > lastPrivateMessages[userId].timestamp) + lastPrivateMessages[userId] = lastMessage; + } + else + lastPrivateMessages[userId] = lastMessage; - view.SetPrivateChat(fallbackDM); + var profile = userProfileBridge.Get(userId); - throw; + try { profile ??= await userProfileBridge.RequestFullUserProfileAsync(userId, cancellationToken); } + catch (Exception e) when (e is not OperationCanceledException) + { + var fallbackDM = new PrivateChatModel + { + recentMessage = lastMessage, + faceSnapshotUrl = "", + isBlocked = ownUserProfile.IsBlocked(userId), + isOnline = false, + userId = userId, + userName = userId, + }; + + view.SetPrivateChat(fallbackDM); + + throw; + } + + view.SetPrivateChat(CreatePrivateChatModel(lastMessage, profile)); } - view.SetPrivateChat(CreatePrivateChatModel(lastMessage, profile)); - } + UpdateMoreChannelsToLoadHint(); + view.HidePrivateChatsLoading(); + view.HideSearchLoading(); - UpdateMoreChannelsToLoadHint(); - view.HidePrivateChatsLoading(); - view.HideSearchLoading(); + isRequestingDMs = false; + } - isRequestingDMs = false; + HandleFriendsWithDirectMessagesAddedAsync(usersWithDM, showDMsCancellationToken.Token).Forget(); } - HandleFriendsWithDirectMessagesAddedAsync(usersWithDM, showDMsCancellationToken.Token).Forget(); - } - - private PrivateChatModel CreatePrivateChatModel(ChatMessage recentMessage, UserProfile profile) - { - return new PrivateChatModel - { - userId = profile.userId, - userName = profile.userName, - faceSnapshotUrl = profile.face256SnapshotURL, - recentMessage = recentMessage, - isBlocked = ownUserProfile.IsBlocked(profile.userId), - isOnline = friendsController.GetUserStatus(profile.userId).presence == PresenceStatus.ONLINE - }; - } - - private string ExtractRecipientId(ChatMessage message) - { - return message.sender != ownUserProfile.userId ? message.sender : message.recipient; - } - - private void OnUserProfileUpdate(UserProfile profile) - { - view.RefreshBlockedDirectMessages(profile.blocked); - - if (profile.isGuest) - view.ShowConnectWallet(); - else - view.HideConnectWallet(); - } + private PrivateChatModel CreatePrivateChatModel(ChatMessage recentMessage, UserProfile profile) + { + return new PrivateChatModel + { + userId = profile.userId, + userName = profile.userName, + faceSnapshotUrl = profile.face256SnapshotURL, + recentMessage = recentMessage, + isBlocked = ownUserProfile.IsBlocked(profile.userId), + isOnline = friendsController.GetUserStatus(profile.userId).presence == PresenceStatus.ONLINE + }; + } - private void SearchChats(string search) - { - currentSearch = search; + private string ExtractRecipientId(ChatMessage message) + { + return message.sender != ownUserProfile.userId ? message.sender : message.recipient; + } - if (string.IsNullOrEmpty(search)) + private void OnUserProfileUpdate(UserProfile profile) { - View.DisableSearchMode(); - UpdateMoreChannelsToLoadHint(); - return; + view.RefreshBlockedDirectMessages(profile.blocked); + + if (profile.isGuest) + view.ShowConnectWallet(); + else + view.HideConnectWallet(); } - UpdateMoreChannelsToLoadHint(); - View.EnableSearchMode(); + private void SearchChats(string search) + { + currentSearch = search; - var matchedChannels = publicChannels.Values - .Where(model => model.name.ToLower().Contains(search.ToLower())); - foreach (var channelMatch in matchedChannels) - View.SetPublicChat(channelMatch); + if (string.IsNullOrEmpty(search)) + { + View.DisableSearchMode(); + UpdateMoreChannelsToLoadHint(); + return; + } - RequestFriendsWithDirectMessagesFromSearch(search, USER_DM_ENTRIES_TO_REQUEST_FOR_SEARCH); - } + UpdateMoreChannelsToLoadHint(); + View.EnableSearchMode(); - private void ShowMorePrivateChats() - { - if (isRequestingDMs || - hiddenDMs == 0 || - !string.IsNullOrEmpty(currentSearch)) - return; + var matchedChannels = publicChannels.Values + .Where(model => model.name.ToLower().Contains(search.ToLower())); + foreach (var channelMatch in matchedChannels) + View.SetPublicChat(channelMatch); - RequestFriendsWithDirectMessages(); - } + RequestFriendsWithDirectMessagesFromSearch(search, USER_DM_ENTRIES_TO_REQUEST_FOR_SEARCH); + } - private void UpdateMoreChannelsToLoadHint() - { - hiddenDMs = Mathf.Clamp(friendsController.TotalFriendsWithDirectMessagesCount - lastSkipForDMs, - 0, - friendsController.TotalFriendsWithDirectMessagesCount); - - if (hiddenDMs <= 0 || !string.IsNullOrEmpty(currentSearch)) - View.HideMoreChatsToLoadHint(); - else - View.ShowMoreChatsToLoadHint(hiddenDMs); - } + private void ShowMorePrivateChats() + { + if (isRequestingDMs || + hiddenDMs == 0 || + !string.IsNullOrEmpty(currentSearch)) + return; - private void RequestFriendsWithDirectMessages() - { - isRequestingDMs = true; + RequestFriendsWithDirectMessages(); + } - if (!areDMsRequestedByFirstTime) + private void UpdateMoreChannelsToLoadHint() { - view.ShowPrivateChatsLoading(); - view.HideMoreChatsToLoadHint(); + hiddenDMs = Mathf.Clamp(friendsController.TotalFriendsWithDirectMessagesCount - lastSkipForDMs, + 0, + friendsController.TotalFriendsWithDirectMessagesCount); + + if (hiddenDMs <= 0 || !string.IsNullOrEmpty(currentSearch)) + View.HideMoreChatsToLoadHint(); + else + View.ShowMoreChatsToLoadHint(hiddenDMs); } - friendsController.GetFriendsWithDirectMessages(DMS_PAGE_SIZE, lastSkipForDMs); - lastSkipForDMs += DMS_PAGE_SIZE; - areDMsRequestedByFirstTime = true; + private void RequestFriendsWithDirectMessages() + { + isRequestingDMs = true; - hidePrivateChatsLoadingCancellationToken.Cancel(); - hidePrivateChatsLoadingCancellationToken = new CancellationTokenSource(); - HidePrivateChatsLoadingWhenTimeout(hidePrivateChatsLoadingCancellationToken.Token).Forget(); - } + if (!areDMsRequestedByFirstTime) + { + view.ShowPrivateChatsLoading(); + view.HideMoreChatsToLoadHint(); + } - private async UniTaskVoid HidePrivateChatsLoadingWhenTimeout(CancellationToken cancellationToken) - { - await UniTask.Delay(3000, cancellationToken: cancellationToken); - if (cancellationToken.IsCancellationRequested) return; - view.HidePrivateChatsLoading(); - } + friendsController.GetFriendsWithDirectMessages(DMS_PAGE_SIZE, lastSkipForDMs); + lastSkipForDMs += DMS_PAGE_SIZE; + areDMsRequestedByFirstTime = true; - internal void RequestFriendsWithDirectMessagesFromSearch(string userNameOrId, int limit) - { - view.ShowSearchLoading(); - friendsController.GetFriendsWithDirectMessages(userNameOrId, limit); - hideLoadingCancellationToken?.Cancel(); - hideLoadingCancellationToken = new CancellationTokenSource(); - HideSearchLoadingWhenTimeout(hideLoadingCancellationToken.Token).Forget(); - } + hidePrivateChatsLoadingCancellationToken.Cancel(); + hidePrivateChatsLoadingCancellationToken = new CancellationTokenSource(); + HidePrivateChatsLoadingWhenTimeout(hidePrivateChatsLoadingCancellationToken.Token).Forget(); + } - private void HandleChannelUpdated(Channel channel) - { - if (!channel.Joined) + private async UniTaskVoid HidePrivateChatsLoadingWhenTimeout(CancellationToken cancellationToken) { - view.RemovePublicChat(channel.ChannelId); - publicChannels.Remove(channel.ChannelId); - return; + await UniTask.Delay(3000, cancellationToken: cancellationToken); + if (cancellationToken.IsCancellationRequested) return; + view.HidePrivateChatsLoading(); } - var channelId = channel.ChannelId; - var model = new PublicChatModel(channelId, channel.Name, channel.Description, channel.Joined, - channel.MemberCount, channel.Muted, showOnlyOnlineMembersOnPublicChannels); + internal void RequestFriendsWithDirectMessagesFromSearch(string userNameOrId, int limit) + { + view.ShowSearchLoading(); + friendsController.GetFriendsWithDirectMessages(userNameOrId, limit); + hideLoadingCancellationToken?.Cancel(); + hideLoadingCancellationToken = new CancellationTokenSource(); + HideSearchLoadingWhenTimeout(hideLoadingCancellationToken.Token).Forget(); + } - if (publicChannels.ContainsKey(channelId)) - publicChannels[channelId].CopyFrom(model); - else - publicChannels[channelId] = model; + private void HandleChannelUpdated(Channel channel) + { + if (!channel.Joined) + { + view.RemovePublicChat(channel.ChannelId); + publicChannels.Remove(channel.ChannelId); + return; + } - view.SetPublicChat(model); - view.HideChannelsLoading(); + var channelId = channel.ChannelId; + var model = new PublicChatModel(channelId, channel.Name, channel.Description, channel.Joined, + channel.MemberCount, channel.Muted, showOnlyOnlineMembersOnPublicChannels); - // we clear the unseen messages to avoid showing many of them while the user was offline - // TODO: we should consider avoid clearing when the channel is private in the future - ClearOfflineUnseenMessages(channelId); - } + if (publicChannels.ContainsKey(channelId)) + publicChannels[channelId].CopyFrom(model); + else + publicChannels[channelId] = model; - private void ClearOfflineUnseenMessages(string channelId) - { - if (channelsClearedUnseenNotifications.Contains(channelId)) return; - chatController.MarkChannelMessagesAsSeen(channelId); - channelsClearedUnseenNotifications.Add(channelId); - } + view.SetPublicChat(model); + view.HideChannelsLoading(); - private void HandleAutoChannelJoined(Channel channel) => ReportChannelJoinedToAnalytics(channel, "auto"); + // we clear the unseen messages to avoid showing many of them while the user was offline + // TODO: we should consider avoid clearing when the channel is private in the future + ClearOfflineUnseenMessages(channelId); + } - private void HandleChannelJoined(Channel channel) - { - ReportChannelJoinedToAnalytics(channel, "manual"); - OpenPublicChat(channel.ChannelId); - } + private void ClearOfflineUnseenMessages(string channelId) + { + if (channelsClearedUnseenNotifications.Contains(channelId)) return; + chatController.MarkChannelMessagesAsSeen(channelId); + channelsClearedUnseenNotifications.Add(channelId); + } - private void ReportChannelJoinedToAnalytics(Channel channel, string method) - { - if (channel.MemberCount <= 1) - socialAnalytics.SendEmptyChannelCreated(channel.Name, dataStore.channels.channelJoinedSource.Get()); - else - socialAnalytics.SendPopulatedChannelJoined(channel.Name, dataStore.channels.channelJoinedSource.Get(), method); - } + private void HandleAutoChannelJoined(Channel channel) => ReportChannelJoinedToAnalytics(channel, "auto"); - private void HandleJoinChannelError(string channelId, ChannelErrorCode errorCode) - { - if (dataStore.channels.isCreationModalVisible.Get()) return; + private void HandleChannelJoined(Channel channel) + { + ReportChannelJoinedToAnalytics(channel, "manual"); + OpenPublicChat(channel.ChannelId); + } - switch (errorCode) + private void ReportChannelJoinedToAnalytics(Channel channel, string method) { - case ChannelErrorCode.LimitExceeded: - dataStore.channels.currentChannelLimitReached.Set(channelId, true); - break; - case ChannelErrorCode.Unknown: - dataStore.channels.joinChannelError.Set(channelId, true); - break; + if (channel.MemberCount <= 1) + socialAnalytics.SendEmptyChannelCreated(channel.Name, dataStore.channels.channelJoinedSource.Get()); + else + socialAnalytics.SendPopulatedChannelJoined(channel.Name, dataStore.channels.channelJoinedSource.Get(), method); } - } - private void HandleLeaveChannelError(string channelId, ChannelErrorCode errorCode) => - dataStore.channels.leaveChannelError.Set(channelId, true); + private void HandleJoinChannelError(string channelId, ChannelErrorCode errorCode) + { + if (dataStore.channels.isCreationModalVisible.Get()) return; - private void HandleChannelLeft(string channelId) - { - publicChannels.Remove(channelId); - view.RemovePublicChat(channelId); - var channel = chatController.GetAllocatedChannel(channelId); - socialAnalytics.SendLeaveChannel(channel?.Name ?? channelId, dataStore.channels.channelLeaveSource.Get()); - } + switch (errorCode) + { + case ChannelErrorCode.LimitExceeded: + dataStore.channels.currentChannelLimitReached.Set(channelId, true); + break; + case ChannelErrorCode.Unknown: + dataStore.channels.joinChannelError.Set(channelId, true); + break; + } + } - private void HandleChannelOpened(string channelId, string previousChannelId) - { - if (string.IsNullOrEmpty(channelId)) - return; + private void HandleLeaveChannelError(string channelId, ChannelErrorCode errorCode) => + dataStore.channels.leaveChannelError.Set(channelId, true); - OpenPublicChat(channelId); - } + private void HandleChannelLeft(string channelId) + { + publicChannels.Remove(channelId); + view.RemovePublicChat(channelId); + var channel = chatController.GetAllocatedChannel(channelId); + socialAnalytics.SendLeaveChannel(channel?.Name ?? channelId, dataStore.channels.channelLeaveSource.Get()); + } - private void HandleAskForJoinChannel(string channelName) - { - chatController.OnAskForJoinChannel -= HandleAskForJoinChannel; + private void HandleChannelOpened(string channelId, string previousChannelId) + { + if (string.IsNullOrEmpty(channelId)) + return; - if (!channelsFeatureFlagService.IsAllowedToCreateChannels()) - return; + OpenPublicChat(channelId); + } - if (rendererState.Get()) - dataStore.channels.currentJoinChannelModal.Set(channelName, true); - else + private void HandleAskForJoinChannel(string channelName) { - channelToJoinAtTheBeginning = channelName; - rendererState.OnChange += HandleAskForJoinChannelAfterRendererState; - } - } + chatController.OnAskForJoinChannel -= HandleAskForJoinChannel; - private void HandleAskForJoinChannelAfterRendererState(bool current, bool _) - { - if (!current) - return; + if (!channelsFeatureFlagService.IsAllowedToCreateChannels()) + return; - rendererState.OnChange -= HandleAskForJoinChannelAfterRendererState; - dataStore.channels.currentJoinChannelModal.Set(channelToJoinAtTheBeginning, true); - } + if (rendererState.Get()) + dataStore.channels.currentJoinChannelModal.Set(channelName, true); + else + { + channelToJoinAtTheBeginning = channelName; + rendererState.OnChange += HandleAskForJoinChannelAfterRendererState; + } + } - private void RequestUnreadMessages() => chatController.GetUnseenMessagesByUser(); + private void HandleAskForJoinChannelAfterRendererState(bool current, bool _) + { + if (!current) + return; - private void RequestUnreadChannelsMessages() - { - chatController.GetUnseenMessagesByChannel(); - areUnseenMessajesRequestedByFirstTime = true; - } + rendererState.OnChange -= HandleAskForJoinChannelAfterRendererState; + dataStore.channels.currentJoinChannelModal.Set(channelToJoinAtTheBeginning, true); + } - private void OpenChannelSearch() - { - if (!ownUserProfile.isGuest) - OnOpenChannelSearch?.Invoke(); - else - dataStore.HUDs.connectWalletModalVisible.Set(true); - } + private void RequestUnreadMessages() => chatController.GetUnseenMessagesByUser(); - private async UniTask HideSearchLoadingWhenTimeout(CancellationToken cancellationToken) - { - await UniTask.Delay(3000, cancellationToken: cancellationToken); - if (cancellationToken.IsCancellationRequested) return; - view.HideSearchLoading(); - } + private void RequestUnreadChannelsMessages() + { + chatController.GetUnseenMessagesByChannel(); + areUnseenMessajesRequestedByFirstTime = true; + } - private void OnAllowedToCreateChannelsChanged(bool isAllowed) => view.SetCreateChannelButtonActive(isAllowed); + private void OpenChannelSearch() + { + if (!ownUserProfile.isGuest) + OnOpenChannelSearch?.Invoke(); + else + dataStore.HUDs.connectWalletModalVisible.Set(true); + } - private void SetAutomaticChannelsInfoUpdatingActive(bool isActive) - { - reloadingChannelsInfoCancellationToken.Cancel(); + private async UniTask HideSearchLoadingWhenTimeout(CancellationToken cancellationToken) + { + await UniTask.Delay(3000, cancellationToken: cancellationToken); + if (cancellationToken.IsCancellationRequested) return; + view.HideSearchLoading(); + } + + private void OnAllowedToCreateChannelsChanged(bool isAllowed) => view.SetCreateChannelButtonActive(isAllowed); - if (isActive) + private void SetAutomaticChannelsInfoUpdatingActive(bool isActive) { - GetCurrentChannelsInfo(); - reloadingChannelsInfoCancellationToken = new CancellationTokenSource(); - ReloadChannelsInfoPeriodically(reloadingChannelsInfoCancellationToken.Token).Forget(); + reloadingChannelsInfoCancellationToken.Cancel(); + + if (isActive) + { + GetCurrentChannelsInfo(); + reloadingChannelsInfoCancellationToken = new CancellationTokenSource(); + ReloadChannelsInfoPeriodically(reloadingChannelsInfoCancellationToken.Token).Forget(); + } } - } - private async UniTask ReloadChannelsInfoPeriodically(CancellationToken cancellationToken) - { - while (true) + private async UniTask ReloadChannelsInfoPeriodically(CancellationToken cancellationToken) { - await UniTask.Delay(MINUTES_FOR_AUTOMATIC_CHANNELS_INFO_RELOADING * 60 * 1000, - cancellationToken: cancellationToken); + while (true) + { + await UniTask.Delay(MINUTES_FOR_AUTOMATIC_CHANNELS_INFO_RELOADING * 60 * 1000, + cancellationToken: cancellationToken); - if (cancellationToken.IsCancellationRequested) - return; + if (cancellationToken.IsCancellationRequested) + return; - GetCurrentChannelsInfo(); + GetCurrentChannelsInfo(); + } } - } - private void GetCurrentChannelsInfo() - { - chatController.GetChannelInfo(publicChannels - .Select(x => x.Key) - .Where(x => x != ChatUtils.NEARBY_CHANNEL_ID) - .ToArray()); - } + private void GetCurrentChannelsInfo() + { + chatController.GetChannelInfo(publicChannels + .Select(x => x.Key) + .Where(x => x != ChatUtils.NEARBY_CHANNEL_ID) + .ToArray()); + } - private void OpenWalletReadme() => - browserBridge.OpenUrl("https://docs.decentraland.org/player/blockchain-integration/get-a-wallet/"); + private void OpenWalletReadme() => + browserBridge.OpenUrl("https://docs.decentraland.org/player/blockchain-integration/get-a-wallet/"); - private void SignUp() => userProfileBridge.SignUp(); + private void SignUp() => userProfileBridge.SignUp(); + } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/WorldChatWindowHUD.asmdef b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/WorldChatWindowHUD.asmdef index 5bd0e8925d..f0564bb4cf 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/WorldChatWindowHUD.asmdef +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/WorldChatWindowHUD.asmdef @@ -38,7 +38,8 @@ "GUID:5cd5fb11f1b1d104586dec3f36722223", "GUID:c34e38f41494f834abff029ddf82af43", "GUID:97d8897529779cb49bebd400c7f402a6", - "GUID:a3ceb534947fac14da25035bc5c24788" + "GUID:a3ceb534947fac14da25035bc5c24788", + "GUID:e5b8a8ed154ad624f99bcb73d3284a90" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/WorldChatWindowModel.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/WorldChatWindowModel.cs index d3078d3618..995f37470c 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/WorldChatWindowModel.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/WorldChatWindowModel.cs @@ -1,6 +1,6 @@ using System; -namespace DCL.Chat.HUD +namespace DCL.Social.Chat { [Serializable] public class WorldChatWindowModel : BaseComponentModel @@ -11,4 +11,4 @@ public class WorldChatWindowModel : BaseComponentModel public PublicChatEntryModel[] publicChannels; public bool isLoadingChannels; } -} \ No newline at end of file +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/PluginSystem/PluginSystemFactory.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/PluginSystem/PluginSystemFactory.cs index 7608a330e0..c865faaeb6 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/PluginSystem/PluginSystemFactory.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/PluginSystem/PluginSystemFactory.cs @@ -1,6 +1,6 @@ using DCL.AvatarEditor; using DCL.Backpack; -using DCL.Chat.HUD; +using DCL.Social.Chat; using DCL.Chat.Notifications; using DCL.ConfirmationPopup; using DCL.Controllers.LoadingScreenV2; @@ -16,6 +16,7 @@ using DCL.PortableExperiencesToggle; using DCL.Providers; using DCL.Skybox; +using DCL.Social.Chat; using DCL.Social.Friends; using DCL.Tutorial; using DCL.Wallet; From ff7f548e26a968e8478a535ea0a59858d0f4a963 Mon Sep 17 00:00:00 2001 From: Nicolas Lorusso Date: Mon, 24 Jul 2023 17:35:40 -0300 Subject: [PATCH 02/24] included notification when copying a chat message's text --- .../DCL/Controllers/HUD/ChatWidgetHUD/ChatHUDController.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatHUDController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatHUDController.cs index e698b00646..5a981c6975 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatHUDController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatHUDController.cs @@ -525,6 +525,7 @@ private void HideMentionSuggestions() private void HandleCopyMessageToClipboard(ChatEntryModel model) { clipboard.WriteText(ChatUtils.RemoveNoParse(model.bodyText)); + dataStore.notifications.DefaultErrorNotification.Set("Text copied", true); } } } From 4f478542f3ab0790e6969fd67c56eed456aba5d6 Mon Sep 17 00:00:00 2001 From: Nicolas Lorusso Date: Mon, 24 Jul 2023 17:42:55 -0300 Subject: [PATCH 03/24] added test coverage in ChatHUDController --- .../Tests/ChatHUDControllerShould.cs | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/ChatHUDControllerShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/ChatHUDControllerShould.cs index 21b3b0ab8a..9d03988f85 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/ChatHUDControllerShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/ChatHUDControllerShould.cs @@ -1,5 +1,4 @@ using Cysharp.Threading.Tasks; -using DCL.Social.Chat; using DCL.Interface; using DCL.ProfanityFiltering; using NSubstitute; @@ -24,6 +23,7 @@ public class ChatHUDControllerShould private IProfanityFilter profanityFilter; private Func> suggestedProfilesAction; private IUserProfileBridge userProfileBridge; + private IClipboard clipboard; [SetUp] public void SetUp() @@ -42,12 +42,13 @@ public void SetUp() ownUserProfile.UpdateData(new UserProfileModel { userId = OWN_USER_ID }); userProfileBridge.GetOwn().Returns(ownUserProfile); suggestedProfilesAction = () => new List(); + clipboard = Substitute.For(); controller = new ChatHUDController(dataStore, userProfileBridge, true, (name, count, token) => UniTask.FromResult(suggestedProfilesAction.Invoke()), Substitute.For(), Substitute.For(), - Substitute.For(), + clipboard, profanityFilter); controller.Initialize(view); @@ -514,6 +515,26 @@ public IEnumerator ApplyEllipsisFormatWhenProfileIsMissing() => view.SetEntry(Arg.Is(c => c.senderName == "0xfa...7fd4" && c.recipientName == "0xfa...f3df")); }); + [UnityTest] + public IEnumerator CopyToClipboardMessageTextAndDisplayNotification() => + UniTask.ToCoroutine(async () => + { + const string BODY_TEXT = "any useful body message with @mentions and #channels"; + + var notification = ""; + dataStore.notifications.DefaultErrorNotification.OnChange += (current, _) => notification = current; + + view.OnCopyMessageRequested += Raise.Event>(new ChatEntryModel + { + messageType = ChatMessage.Type.PUBLIC, + senderName = "test", + bodyText = BODY_TEXT, + }); + + clipboard.Received(1).WriteText(BODY_TEXT); + Assert.AreEqual("Text copied", notification); + }); + private UserProfile GivenProfile(string userId, string username, string face256) { UserProfile user1 = ScriptableObject.CreateInstance(); From 60345a7344672b973e6056b7a6882758f0301344 Mon Sep 17 00:00:00 2001 From: Nicolas Lorusso Date: Tue, 25 Jul 2023 11:31:59 -0300 Subject: [PATCH 04/24] implemented user name copy from user context menu --- .../UserContextMenuPanel Variant.prefab | 10 + .../UserContextMenuPanel.prefab | 220 +- .../HUD/UsersAroundListHUD/Animations.meta | 8 - .../UsersAroundMicAnimator.controller | 211 - .../UsersAroundMicAnimator.controller.meta | 8 - .../Animations/UsersAroundMicIdle.anim | 718 --- .../Animations/UsersAroundMicIdle.anim.meta | 8 - .../Animations/UsersAroundMicLoop.anim | 1420 ----- .../Animations/UsersAroundMicLoop.anim.meta | 8 - .../Animations/UsersAroundMicRecording.anim | 1060 ---- .../UsersAroundMicRecording.anim.meta | 8 - .../IUsersAroundListHUDButtonView.cs | 8 - .../IUsersAroundListHUDButtonView.cs.meta | 11 - .../IUsersAroundListHUDListView.cs | 16 - .../IUsersAroundListHUDListView.cs.meta | 11 - .../HUD/UsersAroundListHUD/Prefabs.meta | 8 - .../Prefabs/UsersAroundButton.prefab | 454 -- .../Prefabs/UsersAroundButton.prefab.meta | 7 - .../Prefabs/UsersListElement.prefab | 1728 ------ .../Prefabs/UsersListElement.prefab.meta | 7 - .../Prefabs/VoiceChatSpinBox.prefab | 1208 ---- .../Prefabs/VoiceChatSpinBox.prefab.meta | 7 - .../HUD/UsersAroundListHUD/Resources.meta | 8 - .../Resources/UsersAroundListHUD.prefab | 5054 ----------------- .../Resources/UsersAroundListHUD.prefab.meta | 7 - .../HUD/UsersAroundListHUD/Tests.meta | 8 - .../Tests/UsersAroundListHUDShould.cs | 95 - .../Tests/UsersAroundListHUDShould.cs.meta | 11 - .../Tests/UsersAroundListHUDTests.asmdef | 33 - .../Tests/UsersAroundListHUDTests.asmdef.meta | 7 - .../UsersAroundListHUD.asmdef | 39 - .../UsersAroundListHUD.asmdef.meta | 7 - .../UsersAroundListHUDButtonView.cs | 19 - .../UsersAroundListHUDButtonView.cs.meta | 11 - .../UsersAroundListHUDController.cs | 261 - .../UsersAroundListHUDController.cs.meta | 11 - .../UsersAroundListHUDListElementView.cs | 185 - .../UsersAroundListHUDListElementView.cs.meta | 11 - .../UsersAroundListHUDListView.cs | 196 - .../UsersAroundListHUDListView.cs.meta | 11 - .../NearbyMembersHUDController.cs | 3 +- .../Resources/UserContextMenuPanel.prefab | 3323 ----------- .../UserContextMenuPanel.prefab.meta | 7 - .../Scripts/UserContextMenu.asmdef | 4 +- .../Scripts/UserContextMenu.cs | 26 +- 45 files changed, 213 insertions(+), 16268 deletions(-) delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations.meta delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicAnimator.controller delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicAnimator.controller.meta delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicIdle.anim delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicIdle.anim.meta delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicLoop.anim delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicLoop.anim.meta delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicRecording.anim delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicRecording.anim.meta delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/IUsersAroundListHUDButtonView.cs delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/IUsersAroundListHUDButtonView.cs.meta delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/IUsersAroundListHUDListView.cs delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/IUsersAroundListHUDListView.cs.meta delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs.meta delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs/UsersAroundButton.prefab delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs/UsersAroundButton.prefab.meta delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs/UsersListElement.prefab delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs/UsersListElement.prefab.meta delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs/VoiceChatSpinBox.prefab delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs/VoiceChatSpinBox.prefab.meta delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Resources.meta delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Resources/UsersAroundListHUD.prefab delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Resources/UsersAroundListHUD.prefab.meta delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Tests.meta delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Tests/UsersAroundListHUDShould.cs delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Tests/UsersAroundListHUDShould.cs.meta delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Tests/UsersAroundListHUDTests.asmdef delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Tests/UsersAroundListHUDTests.asmdef.meta delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUD.asmdef delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUD.asmdef.meta delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDButtonView.cs delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDButtonView.cs.meta delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDController.cs delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDController.cs.meta delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDListElementView.cs delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDListElementView.cs.meta delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDListView.cs delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDListView.cs.meta delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Prefabs/Resources/UserContextMenuPanel.prefab delete mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Prefabs/Resources/UserContextMenuPanel.prefab.meta diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Prefabs/UserContextMenuPanel Variant.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Prefabs/UserContextMenuPanel Variant.prefab index d1468c63e2..66efe7f1d8 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Prefabs/UserContextMenuPanel Variant.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Prefabs/UserContextMenuPanel Variant.prefab @@ -458,6 +458,11 @@ PrefabInstance: propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 4733887283956242434, guid: 15120eceeeb9c45ee9d520a23f50872d, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 4998034079656445918, guid: 15120eceeeb9c45ee9d520a23f50872d, type: 3} propertyPath: m_IsActive @@ -918,6 +923,11 @@ PrefabInstance: propertyPath: m_IsActive value: 0 objectReference: {fileID: 0} + - target: {fileID: 8859036475654810075, guid: 15120eceeeb9c45ee9d520a23f50872d, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 8987714422498632940, guid: 15120eceeeb9c45ee9d520a23f50872d, type: 3} propertyPath: m_IsActive diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab index 0b2501998a..45be156001 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab @@ -531,10 +531,10 @@ RectTransform: m_Father: {fileID: 874867509963922894} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 18} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 39.945, y: -18} + m_SizeDelta: {x: 18, y: 18} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &6256284673879661972 CanvasRenderer: @@ -632,9 +632,9 @@ RectTransform: m_Father: {fileID: 4402643883142646717} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 78, y: -54} m_SizeDelta: {x: 156, y: 36} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5074212577009176970 @@ -796,10 +796,10 @@ RectTransform: m_Father: {fileID: 6208790594406829408} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 78, y: -159.95} + m_SizeDelta: {x: 156, y: 108} m_Pivot: {x: 0.5, y: 0} --- !u!114 &1611626389276883358 MonoBehaviour: @@ -1281,10 +1281,10 @@ RectTransform: m_Father: {fileID: 4059770962480349046} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 21} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 89, y: -18} + m_SizeDelta: {x: 108.76, y: 21} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &3769573704859396206 CanvasRenderer: @@ -1834,6 +1834,7 @@ MonoBehaviour: deleteFriendButton: {fileID: 7694302186068571231} messageButton: {fileID: 112276539412484646} mentionButton: {fileID: 8241268633951141713} + copyNameButton: {fileID: 6339934257423045804} --- !u!222 &1477505211059433124 CanvasRenderer: m_ObjectHideFlags: 0 @@ -2047,7 +2048,8 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 3523302219020209382} m_Father: {fileID: 6208790594406829408} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -2467,10 +2469,10 @@ RectTransform: m_Father: {fileID: 4059770962480349046} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 18} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 21.619995, y: -18} + m_SizeDelta: {x: 18, y: 18} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5697590735785824349 CanvasRenderer: @@ -2797,10 +2799,10 @@ RectTransform: m_Father: {fileID: 7833117278873804047} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 21} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -18} + m_SizeDelta: {x: 50.85, y: 21} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &52717574898514223 CanvasRenderer: @@ -3302,9 +3304,9 @@ RectTransform: m_Father: {fileID: 4402643883142646717} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 78, y: -90} m_SizeDelta: {x: 156, y: 36} m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &7383115572565308787 @@ -3443,6 +3445,148 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &7563150208401243404 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3523302219020209382} + - component: {fileID: 3788426832314858658} + - component: {fileID: 6310974042850775004} + - component: {fileID: 6339934257423045804} + - component: {fileID: 2217533867784455526} + m_Layer: 19 + m_Name: CopyNameButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3523302219020209382 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7563150208401243404} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8489894846506230600} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3788426832314858658 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7563150208401243404} + m_CullTransparentMesh: 1 +--- !u!114 &6310974042850775004 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7563150208401243404} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6339934257423045804 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7563150208401243404} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 6310974042850775004} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &2217533867784455526 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7563150208401243404} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 --- !u!1 &7649088973599571615 GameObject: m_ObjectHideFlags: 0 @@ -3476,10 +3620,10 @@ RectTransform: m_Father: {fileID: 874867509963922894} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 21} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 89, y: -18} + m_SizeDelta: {x: 72.11, y: 21} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &8366447033655507365 CanvasRenderer: @@ -3613,10 +3757,10 @@ RectTransform: m_Father: {fileID: 7833117278873804047} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 18} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 49.575, y: -18} + m_SizeDelta: {x: 18, y: 18} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &3868292219736588339 CanvasRenderer: @@ -4333,9 +4477,9 @@ RectTransform: m_Father: {fileID: 4402643883142646717} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 78, y: -18} m_SizeDelta: {x: 156, y: 36} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &6794649913784874489 diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations.meta deleted file mode 100644 index 6ff85cf67a..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 51df485d8a14b4661962bdbd64174f16 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicAnimator.controller b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicAnimator.controller deleted file mode 100644 index 6c162c9a53..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicAnimator.controller +++ /dev/null @@ -1,211 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1102 &-8232657013118813744 -AnimatorState: - serializedVersion: 5 - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: UsersAroundMicIdle - m_Speed: 1 - m_CycleOffset: 0 - m_Transitions: - - {fileID: 2615708214626501750} - m_StateMachineBehaviours: [] - m_Position: {x: 50, y: 50, z: 0} - m_IKOnFeet: 0 - m_WriteDefaultValues: 1 - m_Mirror: 0 - m_SpeedParameterActive: 0 - m_MirrorParameterActive: 0 - m_CycleOffsetParameterActive: 0 - m_TimeParameterActive: 0 - m_Motion: {fileID: 7400000, guid: 3333b9918e836dd40a4e7114b5b49147, type: 2} - m_Tag: - m_SpeedParameter: - m_MirrorParameter: - m_CycleOffsetParameter: - m_TimeParameter: ---- !u!1102 &-8175857610135839236 -AnimatorState: - serializedVersion: 5 - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: UsersAroundMicRecording - m_Speed: 1 - m_CycleOffset: 0 - m_Transitions: - - {fileID: 7271579390784501123} - m_StateMachineBehaviours: [] - m_Position: {x: 50, y: 50, z: 0} - m_IKOnFeet: 0 - m_WriteDefaultValues: 1 - m_Mirror: 0 - m_SpeedParameterActive: 0 - m_MirrorParameterActive: 0 - m_CycleOffsetParameterActive: 0 - m_TimeParameterActive: 0 - m_Motion: {fileID: 7400000, guid: 4df4803f6fc91482e913e334ec2c83ae, type: 2} - m_Tag: - m_SpeedParameter: - m_MirrorParameter: - m_CycleOffsetParameter: - m_TimeParameter: ---- !u!1101 &-5737972103905720813 -AnimatorStateTransition: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: - m_Conditions: - - m_ConditionMode: 2 - m_ConditionEvent: Talking - m_EventTreshold: 0 - m_DstStateMachine: {fileID: 0} - m_DstState: {fileID: -8232657013118813744} - m_Solo: 0 - m_Mute: 0 - m_IsExit: 0 - serializedVersion: 3 - m_TransitionDuration: 0 - m_TransitionOffset: 0 - m_ExitTime: 1 - m_HasExitTime: 0 - m_HasFixedDuration: 1 - m_InterruptionSource: 0 - m_OrderedInterruption: 1 - m_CanTransitionToSelf: 1 ---- !u!91 &9100000 -AnimatorController: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: UsersAroundMicAnimator - serializedVersion: 5 - m_AnimatorParameters: - - m_Name: Talking - m_Type: 4 - m_DefaultFloat: 0 - m_DefaultInt: 0 - m_DefaultBool: 0 - m_Controller: {fileID: 0} - m_AnimatorLayers: - - serializedVersion: 5 - m_Name: Base Layer - m_StateMachine: {fileID: 4372288578523154587} - m_Mask: {fileID: 0} - m_Motions: [] - m_Behaviours: [] - m_BlendingMode: 0 - m_SyncedLayerIndex: -1 - m_DefaultWeight: 0 - m_IKPass: 0 - m_SyncedLayerAffectsTiming: 0 - m_Controller: {fileID: 9100000} ---- !u!1101 &2615708214626501750 -AnimatorStateTransition: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: - m_Conditions: - - m_ConditionMode: 1 - m_ConditionEvent: Talking - m_EventTreshold: 0 - m_DstStateMachine: {fileID: 0} - m_DstState: {fileID: -8175857610135839236} - m_Solo: 0 - m_Mute: 0 - m_IsExit: 0 - serializedVersion: 3 - m_TransitionDuration: 0 - m_TransitionOffset: 0 - m_ExitTime: 1 - m_HasExitTime: 0 - m_HasFixedDuration: 1 - m_InterruptionSource: 0 - m_OrderedInterruption: 1 - m_CanTransitionToSelf: 1 ---- !u!1107 &4372288578523154587 -AnimatorStateMachine: - serializedVersion: 5 - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: Base Layer - m_ChildStates: - - serializedVersion: 1 - m_State: {fileID: -8175857610135839236} - m_Position: {x: -110, y: 210, z: 0} - - serializedVersion: 1 - m_State: {fileID: 5348494939523033382} - m_Position: {x: 30, y: 320, z: 0} - - serializedVersion: 1 - m_State: {fileID: -8232657013118813744} - m_Position: {x: 30, y: 130, z: 0} - m_ChildStateMachines: [] - m_AnyStateTransitions: [] - m_EntryTransitions: [] - m_StateMachineTransitions: {} - m_StateMachineBehaviours: [] - m_AnyStatePosition: {x: 50, y: 20, z: 0} - m_EntryPosition: {x: 50, y: 60, z: 0} - m_ExitPosition: {x: 800, y: 120, z: 0} - m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} - m_DefaultState: {fileID: -8232657013118813744} ---- !u!1102 &5348494939523033382 -AnimatorState: - serializedVersion: 5 - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: UsersAroundMicLoop - m_Speed: 1 - m_CycleOffset: 0 - m_Transitions: - - {fileID: -5737972103905720813} - m_StateMachineBehaviours: [] - m_Position: {x: 50, y: 50, z: 0} - m_IKOnFeet: 0 - m_WriteDefaultValues: 1 - m_Mirror: 0 - m_SpeedParameterActive: 0 - m_MirrorParameterActive: 0 - m_CycleOffsetParameterActive: 0 - m_TimeParameterActive: 0 - m_Motion: {fileID: 7400000, guid: 8fad2064e983c404893b710e8ebb0882, type: 2} - m_Tag: - m_SpeedParameter: - m_MirrorParameter: - m_CycleOffsetParameter: - m_TimeParameter: ---- !u!1101 &7271579390784501123 -AnimatorStateTransition: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: - m_Conditions: [] - m_DstStateMachine: {fileID: 0} - m_DstState: {fileID: 5348494939523033382} - m_Solo: 0 - m_Mute: 0 - m_IsExit: 0 - serializedVersion: 3 - m_TransitionDuration: 0 - m_TransitionOffset: 0 - m_ExitTime: 1 - m_HasExitTime: 1 - m_HasFixedDuration: 1 - m_InterruptionSource: 0 - m_OrderedInterruption: 1 - m_CanTransitionToSelf: 1 diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicAnimator.controller.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicAnimator.controller.meta deleted file mode 100644 index acc8a8962a..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicAnimator.controller.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: c2759699cbf0f4199bb4d58d31bbbfb3 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicIdle.anim b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicIdle.anim deleted file mode 100644 index 2a97ed358a..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicIdle.anim +++ /dev/null @@ -1,718 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!74 &7400000 -AnimationClip: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: UsersAroundMicIdle - serializedVersion: 6 - m_Legacy: 0 - m_Compressed: 0 - m_UseHighQualityCurve: 1 - m_RotationCurves: [] - m_CompressedRotationCurves: [] - m_EulerCurves: [] - m_PositionCurves: [] - m_ScaleCurves: - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: {x: 1, y: 1, z: 1} - inSlope: {x: 0, y: 0, z: 0} - outSlope: {x: 0, y: 0, z: 0} - tangentMode: 0 - weightedMode: 0 - inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - path: ImageMute - m_FloatCurves: - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: -1.63 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_AnchoredPosition.y - path: ImageMute - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 18.444355 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_SizeDelta.y - path: ImageMute - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.r - path: ImageMute - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.g - path: ImageMute - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.b - path: ImageMute - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.a - path: ImageMute - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_IsActive - path: ImageTalking - classID: 1 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: -0.593 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_AnchoredPosition.y - path: ImageTalking - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 7.8320312 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_SizeDelta.y - path: ImageTalking - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0.38431373 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.r - path: ImageTalking - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.g - path: ImageTalking - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0.40784314 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.b - path: ImageTalking - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.a - path: ImageTalking - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_PPtrCurves: [] - m_SampleRate: 60 - m_WrapMode: 0 - m_Bounds: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 0, y: 0, z: 0} - m_ClipBindingConstant: - genericBindings: - - serializedVersion: 2 - path: 403309733 - attribute: 2086281974 - script: {fileID: 0} - typeID: 1 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 4227569512 - attribute: 3 - script: {fileID: 0} - typeID: 4 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 4227569512 - attribute: 538195251 - script: {fileID: 0} - typeID: 224 - customType: 28 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 4227569512 - attribute: 38095219 - script: {fileID: 0} - typeID: 224 - customType: 28 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 4227569512 - attribute: 2526845255 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 4227569512 - attribute: 4215373228 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 4227569512 - attribute: 2334886179 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 4227569512 - attribute: 304273561 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 403309733 - attribute: 538195251 - script: {fileID: 0} - typeID: 224 - customType: 28 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 403309733 - attribute: 38095219 - script: {fileID: 0} - typeID: 224 - customType: 28 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 403309733 - attribute: 2526845255 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 403309733 - attribute: 4215373228 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 403309733 - attribute: 2334886179 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 403309733 - attribute: 304273561 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - pptrCurveMapping: [] - m_AnimationClipSettings: - serializedVersion: 2 - m_AdditiveReferencePoseClip: {fileID: 0} - m_AdditiveReferencePoseTime: 0 - m_StartTime: 0 - m_StopTime: 0 - m_OrientationOffsetY: 0 - m_Level: 0 - m_CycleOffset: 0 - m_HasAdditiveReferencePose: 0 - m_LoopTime: 0 - m_LoopBlend: 0 - m_LoopBlendOrientation: 0 - m_LoopBlendPositionY: 0 - m_LoopBlendPositionXZ: 0 - m_KeepOriginalOrientation: 0 - m_KeepOriginalPositionY: 1 - m_KeepOriginalPositionXZ: 0 - m_HeightFromFeet: 0 - m_Mirror: 0 - m_EditorCurves: - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: -1.63 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_AnchoredPosition.y - path: ImageMute - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalScale.x - path: ImageMute - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalScale.y - path: ImageMute - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalScale.z - path: ImageMute - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 18.444355 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_SizeDelta.y - path: ImageMute - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.r - path: ImageMute - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.g - path: ImageMute - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.b - path: ImageMute - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.a - path: ImageMute - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_IsActive - path: ImageTalking - classID: 1 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: -0.593 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_AnchoredPosition.y - path: ImageTalking - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 7.8320312 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_SizeDelta.y - path: ImageTalking - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0.38431373 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.r - path: ImageTalking - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.g - path: ImageTalking - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0.40784314 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.b - path: ImageTalking - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.a - path: ImageTalking - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_EulerEditorCurves: [] - m_HasGenericRootTransform: 0 - m_HasMotionFloatCurves: 0 - m_Events: [] diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicIdle.anim.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicIdle.anim.meta deleted file mode 100644 index b4fd13cb7d..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicIdle.anim.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 3333b9918e836dd40a4e7114b5b49147 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicLoop.anim b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicLoop.anim deleted file mode 100644 index 42c06b02a9..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicLoop.anim +++ /dev/null @@ -1,1420 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!74 &7400000 -AnimationClip: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: UsersAroundMicLoop - serializedVersion: 6 - m_Legacy: 0 - m_Compressed: 0 - m_UseHighQualityCurve: 1 - m_RotationCurves: [] - m_CompressedRotationCurves: [] - m_EulerCurves: [] - m_PositionCurves: [] - m_ScaleCurves: - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: {x: 0.38280323, y: 0.38280323, z: 0.38280323} - inSlope: {x: 0, y: 0, z: 0} - outSlope: {x: 0, y: 0, z: 0} - tangentMode: 0 - weightedMode: 0 - inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - - serializedVersion: 3 - time: 2.0666666 - value: {x: 0.38280323, y: 0.38280323, z: 0.38280323} - inSlope: {x: 0, y: 0, z: 0} - outSlope: {x: 0, y: 0, z: 0} - tangentMode: 0 - weightedMode: 0 - inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - path: ImageMute - m_FloatCurves: - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.r - path: ImageMute - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.g - path: ImageMute - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.b - path: ImageMute - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.a - path: ImageMute - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - - serializedVersion: 3 - time: 2.0666666 - value: 1 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_IsActive - path: ImageTalking - classID: 1 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: -0.593 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.1 - value: 1.246 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.2 - value: 0.764 - inSlope: -8.262858 - outSlope: -8.262858 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.33333334 - value: -1.481 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.53333336 - value: -1.256 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.73333335 - value: -1.783 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.93333334 - value: 0.39 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1.2 - value: -0.049 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1.5 - value: 0.697 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1.7 - value: 0.434 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1.8666667 - value: 1.005 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: -0.593 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_AnchoredPosition.y - path: ImageTalking - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 7.8320312 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.1 - value: 11.879815 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.2 - value: 10.91614 - inSlope: -16.52015 - outSlope: -16.52015 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.33333334 - value: 6.4265842 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.53333336 - value: 6.876175 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.73333335 - value: 5.822838 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.93333334 - value: 10.168025 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1.2 - value: 9.290212 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1.5 - value: 10.782529 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1.7 - value: 10.255794 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1.8666667 - value: 11.396913 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: 7.8320312 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_SizeDelta.y - path: ImageTalking - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0.38431373 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: 0.38431373 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.r - path: ImageTalking - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.g - path: ImageTalking - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0.40784314 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: 0.40784314 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.b - path: ImageTalking - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.a - path: ImageTalking - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: -1.63 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.1 - value: -2.635 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.2 - value: -0.498 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: -1.63 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_AnchoredPosition.y - path: ImageMute - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 18.444355 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.1 - value: 13.195791 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.2 - value: 24.360785 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: 18.444355 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_SizeDelta.y - path: ImageMute - classID: 224 - script: {fileID: 0} - m_PPtrCurves: [] - m_SampleRate: 30 - m_WrapMode: 0 - m_Bounds: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 0, y: 0, z: 0} - m_ClipBindingConstant: - genericBindings: - - serializedVersion: 2 - path: 403309733 - attribute: 2086281974 - script: {fileID: 0} - typeID: 1 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 403309733 - attribute: 538195251 - script: {fileID: 0} - typeID: 224 - customType: 28 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 403309733 - attribute: 38095219 - script: {fileID: 0} - typeID: 224 - customType: 28 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 4227569512 - attribute: 538195251 - script: {fileID: 0} - typeID: 224 - customType: 28 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 4227569512 - attribute: 38095219 - script: {fileID: 0} - typeID: 224 - customType: 28 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 4227569512 - attribute: 3 - script: {fileID: 0} - typeID: 4 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 4227569512 - attribute: 2526845255 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 4227569512 - attribute: 4215373228 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 4227569512 - attribute: 2334886179 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 4227569512 - attribute: 304273561 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 403309733 - attribute: 2526845255 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 403309733 - attribute: 4215373228 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 403309733 - attribute: 2334886179 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 403309733 - attribute: 304273561 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - pptrCurveMapping: [] - m_AnimationClipSettings: - serializedVersion: 2 - m_AdditiveReferencePoseClip: {fileID: 0} - m_AdditiveReferencePoseTime: 0 - m_StartTime: 0 - m_StopTime: 2.0666666 - m_OrientationOffsetY: 0 - m_Level: 0 - m_CycleOffset: 0 - m_HasAdditiveReferencePose: 0 - m_LoopTime: 1 - m_LoopBlend: 0 - m_LoopBlendOrientation: 0 - m_LoopBlendPositionY: 0 - m_LoopBlendPositionXZ: 0 - m_KeepOriginalOrientation: 0 - m_KeepOriginalPositionY: 1 - m_KeepOriginalPositionXZ: 0 - m_HeightFromFeet: 0 - m_Mirror: 0 - m_EditorCurves: - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0.38280323 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: 0.38280323 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalScale.x - path: ImageMute - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0.38280323 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: 0.38280323 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalScale.y - path: ImageMute - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0.38280323 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: 0.38280323 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalScale.z - path: ImageMute - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.r - path: ImageMute - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.g - path: ImageMute - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.b - path: ImageMute - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.a - path: ImageMute - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - - serializedVersion: 3 - time: 2.0666666 - value: 1 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_IsActive - path: ImageTalking - classID: 1 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: -0.593 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.1 - value: 1.246 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.2 - value: 0.764 - inSlope: -8.262858 - outSlope: -8.262858 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.33333334 - value: -1.481 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.53333336 - value: -1.256 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.73333335 - value: -1.783 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.93333334 - value: 0.39 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1.2 - value: -0.049 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1.5 - value: 0.697 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1.7 - value: 0.434 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1.8666667 - value: 1.005 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: -0.593 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_AnchoredPosition.y - path: ImageTalking - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 7.8320312 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.1 - value: 11.879815 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.2 - value: 10.91614 - inSlope: -16.52015 - outSlope: -16.52015 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.33333334 - value: 6.4265842 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.53333336 - value: 6.876175 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.73333335 - value: 5.822838 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.93333334 - value: 10.168025 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1.2 - value: 9.290212 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1.5 - value: 10.782529 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1.7 - value: 10.255794 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1.8666667 - value: 11.396913 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: 7.8320312 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_SizeDelta.y - path: ImageTalking - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0.38431373 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: 0.38431373 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.r - path: ImageTalking - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.g - path: ImageTalking - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0.40784314 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: 0.40784314 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.b - path: ImageTalking - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.a - path: ImageTalking - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: -1.63 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.1 - value: -2.635 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.2 - value: -0.498 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: -1.63 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_AnchoredPosition.y - path: ImageMute - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 18.444355 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.1 - value: 13.195791 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.2 - value: 24.360785 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 2.0666666 - value: 18.444355 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_SizeDelta.y - path: ImageMute - classID: 224 - script: {fileID: 0} - m_EulerEditorCurves: [] - m_HasGenericRootTransform: 0 - m_HasMotionFloatCurves: 0 - m_Events: [] diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicLoop.anim.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicLoop.anim.meta deleted file mode 100644 index 0c80b9f95a..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicLoop.anim.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 8fad2064e983c404893b710e8ebb0882 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicRecording.anim b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicRecording.anim deleted file mode 100644 index dc1a409010..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicRecording.anim +++ /dev/null @@ -1,1060 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!74 &7400000 -AnimationClip: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: UsersAroundMicRecording - serializedVersion: 6 - m_Legacy: 0 - m_Compressed: 0 - m_UseHighQualityCurve: 1 - m_RotationCurves: [] - m_CompressedRotationCurves: [] - m_EulerCurves: [] - m_PositionCurves: [] - m_ScaleCurves: - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: {x: 1, y: 1, z: 1} - inSlope: {x: 0, y: 0, z: 0} - outSlope: {x: 0, y: 0, z: 0} - tangentMode: 0 - weightedMode: 0 - inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - - serializedVersion: 3 - time: 0.1 - value: {x: 1.07, y: 1.07, z: 1.07} - inSlope: {x: 0, y: 0, z: 0} - outSlope: {x: 0, y: 0, z: 0} - tangentMode: 0 - weightedMode: 0 - inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - - serializedVersion: 3 - time: 0.3 - value: {x: 0.38280323, y: 0.38280323, z: 0.38280323} - inSlope: {x: 0, y: 0, z: 0} - outSlope: {x: 0, y: 0, z: 0} - tangentMode: 0 - weightedMode: 0 - inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - - serializedVersion: 3 - time: 0.36666667 - value: {x: 0.38280323, y: 0.38280323, z: 0.38280323} - inSlope: {x: 0, y: 0, z: 0} - outSlope: {x: 0, y: 0, z: 0} - tangentMode: 0 - weightedMode: 0 - inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - path: ImageMute - m_FloatCurves: - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - - serializedVersion: 3 - time: 0.1 - value: 1 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - - serializedVersion: 3 - time: 0.36666667 - value: 1 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_IsActive - path: ImageTalking - classID: 1 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0.1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.3 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.36666667 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.r - path: ImageMute - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0.1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.3 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.36666667 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.g - path: ImageMute - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0.1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.3 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.36666667 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.b - path: ImageMute - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0.1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.3 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.36666667 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.a - path: ImageMute - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: -0.01 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.16666667 - value: -2.664 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.36666667 - value: -0.593 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_AnchoredPosition.y - path: ImageTalking - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 9 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.16666667 - value: 3.69104 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.36666667 - value: 7.8320312 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_SizeDelta.y - path: ImageTalking - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0.16666667 - value: 0.38431373 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.36666667 - value: 0.38431373 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.r - path: ImageTalking - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0.16666667 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.36666667 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.g - path: ImageTalking - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0.16666667 - value: 0.40784314 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.36666667 - value: 0.40784314 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.b - path: ImageTalking - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0.16666667 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.36666667 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.a - path: ImageTalking - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_PPtrCurves: [] - m_SampleRate: 30 - m_WrapMode: 0 - m_Bounds: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 0, y: 0, z: 0} - m_ClipBindingConstant: - genericBindings: - - serializedVersion: 2 - path: 4227569512 - attribute: 3 - script: {fileID: 0} - typeID: 4 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 403309733 - attribute: 2086281974 - script: {fileID: 0} - typeID: 1 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 4227569512 - attribute: 304273561 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 403309733 - attribute: 538195251 - script: {fileID: 0} - typeID: 224 - customType: 28 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 403309733 - attribute: 38095219 - script: {fileID: 0} - typeID: 224 - customType: 28 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 403309733 - attribute: 304273561 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 4227569512 - attribute: 2526845255 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 4227569512 - attribute: 4215373228 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 4227569512 - attribute: 2334886179 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 403309733 - attribute: 2526845255 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 403309733 - attribute: 4215373228 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - - serializedVersion: 2 - path: 403309733 - attribute: 2334886179 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - typeID: 114 - customType: 0 - isPPtrCurve: 0 - pptrCurveMapping: [] - m_AnimationClipSettings: - serializedVersion: 2 - m_AdditiveReferencePoseClip: {fileID: 0} - m_AdditiveReferencePoseTime: 0 - m_StartTime: 0 - m_StopTime: 0.36666667 - m_OrientationOffsetY: 0 - m_Level: 0 - m_CycleOffset: 0 - m_HasAdditiveReferencePose: 0 - m_LoopTime: 1 - m_LoopBlend: 0 - m_LoopBlendOrientation: 0 - m_LoopBlendPositionY: 0 - m_LoopBlendPositionXZ: 0 - m_KeepOriginalOrientation: 0 - m_KeepOriginalPositionY: 1 - m_KeepOriginalPositionXZ: 0 - m_HeightFromFeet: 0 - m_Mirror: 0 - m_EditorCurves: - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.1 - value: 1.07 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.3 - value: 0.38280323 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.36666667 - value: 0.38280323 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalScale.x - path: ImageMute - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.1 - value: 1.07 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.3 - value: 0.38280323 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.36666667 - value: 0.38280323 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalScale.y - path: ImageMute - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.1 - value: 1.07 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.3 - value: 0.38280323 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.36666667 - value: 0.38280323 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalScale.z - path: ImageMute - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - - serializedVersion: 3 - time: 0.1 - value: 1 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - - serializedVersion: 3 - time: 0.36666667 - value: 1 - inSlope: Infinity - outSlope: Infinity - tangentMode: 103 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_IsActive - path: ImageTalking - classID: 1 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0.1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.3 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.36666667 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.r - path: ImageMute - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0.1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.3 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.36666667 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.g - path: ImageMute - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0.1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.3 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.36666667 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.b - path: ImageMute - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0.1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.3 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.36666667 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.a - path: ImageMute - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: -0.01 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.16666667 - value: -2.664 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.36666667 - value: -0.593 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_AnchoredPosition.y - path: ImageTalking - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 9 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.16666667 - value: 3.69104 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.36666667 - value: 7.8320312 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_SizeDelta.y - path: ImageTalking - classID: 224 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0.16666667 - value: 0.38431373 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.36666667 - value: 0.38431373 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.r - path: ImageTalking - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0.16666667 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.36666667 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.g - path: ImageTalking - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0.16666667 - value: 0.40784314 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.36666667 - value: 0.40784314 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.b - path: ImageTalking - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - - curve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0.16666667 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 0.36666667 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 136 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_Color.a - path: ImageTalking - classID: 114 - script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_EulerEditorCurves: [] - m_HasGenericRootTransform: 0 - m_HasMotionFloatCurves: 0 - m_Events: [] diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicRecording.anim.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicRecording.anim.meta deleted file mode 100644 index 1881fc0b77..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Animations/UsersAroundMicRecording.anim.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 4df4803f6fc91482e913e334ec2c83ae -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/IUsersAroundListHUDButtonView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/IUsersAroundListHUDButtonView.cs deleted file mode 100644 index 652971f5bc..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/IUsersAroundListHUDButtonView.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System; - -public interface IUsersAroundListHUDButtonView -{ - void SetUsersCount(int count); - event Action OnClick; - void ToggleUsersCount(bool enabled); -} \ No newline at end of file diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/IUsersAroundListHUDButtonView.cs.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/IUsersAroundListHUDButtonView.cs.meta deleted file mode 100644 index 87bb1b6aaa..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/IUsersAroundListHUDButtonView.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 86927cfc8263c4a038e8f1cf4e50b657 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/IUsersAroundListHUDListView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/IUsersAroundListHUDListView.cs deleted file mode 100644 index 1f2059c07d..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/IUsersAroundListHUDListView.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; - -public interface IUsersAroundListHUDListView -{ - event Action OnRequestMuteUser; - event Action OnRequestMuteGlobal; - event Action OnGoToCrowdPressed; - event Action OnOpen; - void AddOrUpdatePlayer(Player player); - void RemoveUser(string userId); - void SetUserRecording(string userId, bool isRecording); - void SetUserMuted(string userId, bool isMuted); - void SetUserBlocked(string userId, bool blocked); - void SetVisibility(bool visible); - void Dispose(); -} \ No newline at end of file diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/IUsersAroundListHUDListView.cs.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/IUsersAroundListHUDListView.cs.meta deleted file mode 100644 index e4c608049a..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/IUsersAroundListHUDListView.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 376481b44b2dd4a2d82a241b0621e7bd -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs.meta deleted file mode 100644 index 649de06bd7..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 08265c60845e04c6fa92b0105cfbfe39 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs/UsersAroundButton.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs/UsersAroundButton.prefab deleted file mode 100644 index a31deafeec..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs/UsersAroundButton.prefab +++ /dev/null @@ -1,454 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &1342820724148284305 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2548594076875084326} - - component: {fileID: 6028693630769707437} - - component: {fileID: 2438729160378458559} - m_Layer: 5 - m_Name: Arrow - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2548594076875084326 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1342820724148284305} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 1579023822081943936} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0.6} - m_SizeDelta: {x: 8, y: 8} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6028693630769707437 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1342820724148284305} - m_CullTransparentMesh: 1 ---- !u!114 &2438729160378458559 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1342820724148284305} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 61971e3b2b11044eca7dcd6f96952405, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &2046633181701912487 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4514339655687608328} - - component: {fileID: 5597833335424187184} - - component: {fileID: 6872133145767142011} - m_Layer: 5 - m_Name: UsersIcon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4514339655687608328 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2046633181701912487} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4825005206613495849} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 13, y: 12} - m_Pivot: {x: 0, y: 0.5} ---- !u!222 &5597833335424187184 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2046633181701912487} - m_CullTransparentMesh: 0 ---- !u!114 &6872133145767142011 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2046633181701912487} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: d1530a26cd1484393bd6f29419fe7ad3, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &5541120639778305590 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1579023822081943936} - - component: {fileID: 3140944442144018582} - - component: {fileID: 9081370437586860773} - m_Layer: 5 - m_Name: ButtonDropDown - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1579023822081943936 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5541120639778305590} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2548594076875084326} - m_Father: {fileID: 4825005206613495849} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 16, y: 16} - m_Pivot: {x: 1, y: 0.5} ---- !u!222 &3140944442144018582 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5541120639778305590} - m_CullTransparentMesh: 0 ---- !u!114 &9081370437586860773 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5541120639778305590} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.5176471} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: f02af068e11cb4902a1a4faad10b890a, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 6 ---- !u!1 &6103398791007809640 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7777745718925468583} - - component: {fileID: 9054028581276242757} - - component: {fileID: 828616504711180014} - m_Layer: 5 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7777745718925468583 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6103398791007809640} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4825005206613495849} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 29.582, y: 17} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &9054028581276242757 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6103398791007809640} - m_CullTransparentMesh: 0 ---- !u!114 &828616504711180014 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6103398791007809640} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: 100 - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 0da28b1264c7140eda8582804e5d094b, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: 263d3c969cdca4dfaaa71514f806a4c2, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 14 - m_fontSizeBase: 18.83 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 4 - m_fontSizeMax: 14 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 0 - m_wordWrappingRatios: 0.4 - m_overflowMode: 1 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &7544733931440925819 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4825005206613495849} - - component: {fileID: 400648806940361939} - - component: {fileID: 5634197192920630944} - - component: {fileID: 9009121925598316834} - m_Layer: 5 - m_Name: UsersAroundButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4825005206613495849 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7544733931440925819} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 4514339655687608328} - - {fileID: 7777745718925468583} - - {fileID: 1579023822081943936} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 74.13, y: -4.2043} - m_SizeDelta: {x: 104.42666, y: 33.191467} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!225 &400648806940361939 -CanvasGroup: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7544733931440925819} - m_Enabled: 1 - m_Alpha: 1 - m_Interactable: 1 - m_BlocksRaycasts: 1 - m_IgnoreParentGroups: 0 ---- !u!114 &5634197192920630944 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7544733931440925819} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 36743ea7b90aa46ada92236f3eb32603, type: 3} - m_Name: - m_EditorClassIdentifier: - usersCountText: {fileID: 828616504711180014} ---- !u!114 &9009121925598316834 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7544733931440925819} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 5 - m_Spacing: 2 - m_ChildForceExpandWidth: 0 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 0 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs/UsersAroundButton.prefab.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs/UsersAroundButton.prefab.meta deleted file mode 100644 index a3ad59e3fc..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs/UsersAroundButton.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: f4715d4a800d54c5b8a37ac0cf8181a6 -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs/UsersListElement.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs/UsersListElement.prefab deleted file mode 100644 index 6858e065f3..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs/UsersListElement.prefab +++ /dev/null @@ -1,1728 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &884244400445963465 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7371158987296751489} - - component: {fileID: 6565824077440176744} - - component: {fileID: 3136244312086885203} - - component: {fileID: 8522172340332194820} - - component: {fileID: 5516049754101860836} - m_Layer: 5 - m_Name: Mic - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7371158987296751489 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 884244400445963465} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 605935011668989766} - - {fileID: 6829384385532288453} - - {fileID: 7486992503874397319} - m_Father: {fileID: 4015831565147992809} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 28, y: 28} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6565824077440176744 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 884244400445963465} - m_CullTransparentMesh: 0 ---- !u!114 &3136244312086885203 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 884244400445963465} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.09803922} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: e36f3569fbdef4c609c33f7a1cebace5, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!114 &8522172340332194820 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 884244400445963465} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 3136244312086885203} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!95 &5516049754101860836 -Animator: - serializedVersion: 3 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 884244400445963465} - m_Enabled: 1 - m_Avatar: {fileID: 0} - m_Controller: {fileID: 9100000, guid: c2759699cbf0f4199bb4d58d31bbbfb3, type: 2} - m_CullingMode: 0 - m_UpdateMode: 0 - m_ApplyRootMotion: 0 - m_LinearVelocityBlending: 0 - m_WarningMessage: - m_HasTransformHierarchy: 1 - m_AllowConstantClipSamplingOptimization: 1 - m_KeepAnimatorControllerStateOnDisable: 0 ---- !u!1 &1773628464662520374 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4015831565147992809} - - component: {fileID: 8003978662118944105} - - component: {fileID: 6809395994633376136} - - component: {fileID: 1949795298173572877} - - component: {fileID: 2409193805209607021} - m_Layer: 5 - m_Name: UsersListElement - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4015831565147992809 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1773628464662520374} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 3396158114295011782} - - {fileID: 4164969010545187739} - - {fileID: 2596717871274498742} - - {fileID: 8787606036367362250} - - {fileID: 7371158987296751489} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 4.1500244, y: 7.3499756} - m_SizeDelta: {x: 364, y: 44} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &8003978662118944105 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1773628464662520374} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2625b1f0cebe145849ec1e325b609497, type: 3} - m_Name: - m_EditorClassIdentifier: - userName: {fileID: 5153465745378546742} - friendLabel: {fileID: 6342663756161018864} - avatarPreview: {fileID: 1709964029938092049} - blockedGO: {fileID: 8720862433428437312} - soundButton: {fileID: 8522172340332194820} - muteGO: {fileID: 5882466693401708938} - backgroundHover: {fileID: 4821310409670062188} - menuButton: {fileID: 6765319225219337802} - contexMenuRefPosition: {fileID: 8368122532035636769} - talkingAnimator: {fileID: 5516049754101860836} ---- !u!222 &6809395994633376136 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1773628464662520374} - m_CullTransparentMesh: 0 ---- !u!114 &1949795298173572877 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1773628464662520374} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 6 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 3 - m_Spacing: 4 - m_ChildForceExpandWidth: 0 - m_ChildForceExpandHeight: 0 - m_ChildControlWidth: 0 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 1 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!225 &2409193805209607021 -CanvasGroup: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1773628464662520374} - m_Enabled: 1 - m_Alpha: 1 - m_Interactable: 1 - m_BlocksRaycasts: 1 - m_IgnoreParentGroups: 0 ---- !u!1 &1855959134939550213 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 492369415968596128} - - component: {fileID: 2144046805819105330} - - component: {fileID: 9054956784643441165} - m_Layer: 5 - m_Name: Stroke - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &492369415968596128 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1855959134939550213} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 2596717871274498742} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.000024795532, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2144046805819105330 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1855959134939550213} - m_CullTransparentMesh: 0 ---- !u!114 &9054956784643441165 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1855959134939550213} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.9150943, g: 0.90214485, b: 0.90214485, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 0d72ee801259541e5a5a33c86e6efdb9, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &2324227806374144022 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4164969010545187739} - m_Layer: 5 - m_Name: MenuButtonContainer - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4164969010545187739 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2324227806374144022} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.5581, y: 0.5581, z: 0.5581} - m_Children: - - {fileID: 273071016526647174} - - {fileID: 8368122532035636769} - m_Father: {fileID: 4015831565147992809} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 19.06, y: 31.66} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &2791749634173069583 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3396158114295011782} - - component: {fileID: 7438808024728733573} - - component: {fileID: 5319981410639834493} - - component: {fileID: 1548089553499291414} - m_Layer: 5 - m_Name: Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3396158114295011782 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2791749634173069583} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2272509546852291813} - m_Father: {fileID: 4015831565147992809} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &7438808024728733573 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2791749634173069583} - m_CullTransparentMesh: 0 ---- !u!114 &5319981410639834493 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2791749634173069583} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.91764706, g: 0.91764706, b: 0.91764706, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: d254a3a3b9d5642e1ad6432c441d7f43, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!114 &1548089553499291414 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2791749634173069583} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 1 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1 &3807600581609780713 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 273071016526647174} - - component: {fileID: 314105700478456999} - - component: {fileID: 4056743093180313705} - - component: {fileID: 6765319225219337802} - - component: {fileID: 6977410368584307400} - m_Layer: 5 - m_Name: MenuButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &273071016526647174 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807600581609780713} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1421355190917969326} - m_Father: {fileID: 4164969010545187739} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 30.30616, y: 54.17127} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &314105700478456999 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807600581609780713} - m_CullTransparentMesh: 0 ---- !u!114 &4056743093180313705 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807600581609780713} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 0} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 907885886bfc54ceca32615106f51a27, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!114 &6765319225219337802 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807600581609780713} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 0 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 4056743093180313705} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &6977410368584307400 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3807600581609780713} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4bfd0d144b6d3dd438b84fa14a062c4f, type: 3} - m_Name: - m_EditorClassIdentifier: - playHover: 0 - playClick: 1 - playRelease: 1 - extraClickEvent: {fileID: 0} ---- !u!1 &3883400909722252382 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2386799260785884631} - - component: {fileID: 4098078331773260102} - - component: {fileID: 7366251479248045988} - - component: {fileID: 8664731135328975215} - m_Layer: 5 - m_Name: AvatarMask - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2386799260785884631 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3883400909722252382} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 7513191566659812362} - - {fileID: 3345788226721278540} - m_Father: {fileID: 2596717871274498742} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 18.002632, y: 18.002632} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4098078331773260102 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3883400909722252382} - m_CullTransparentMesh: 0 ---- !u!114 &7366251479248045988 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3883400909722252382} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: e36f3569fbdef4c609c33f7a1cebace5, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!114 &8664731135328975215 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3883400909722252382} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} - m_Name: - m_EditorClassIdentifier: - m_ShowMaskGraphic: 1 ---- !u!1 &4132515277196897225 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6829384385532288453} - - component: {fileID: 5388692119954353181} - - component: {fileID: 6177516770726261698} - m_Layer: 5 - m_Name: ImageTalking - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6829384385532288453 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4132515277196897225} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 7371158987296751489} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -0.0611, y: -0.2153} - m_SizeDelta: {x: 5.6987, y: 7.0525} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5388692119954353181 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4132515277196897225} - m_CullTransparentMesh: 0 ---- !u!114 &6177516770726261698 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4132515277196897225} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.3843137, g: 1, b: 0.4078431, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 166eccd2b230b3a45b65e30f02348cd6, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!1 &4165456104352446775 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8787606036367362250} - - component: {fileID: 6034115281711837962} - m_Layer: 5 - m_Name: NameContainer - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8787606036367362250 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4165456104352446775} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 5750925742049168255} - - {fileID: 5652249184453126303} - m_Father: {fileID: 4015831565147992809} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 261.3435, y: 38.4251} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &6034115281711837962 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4165456104352446775} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 3 - m_Spacing: -6 - m_ChildForceExpandWidth: 0 - m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 0 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!1 &4821310409670062188 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2272509546852291813} - - component: {fileID: 566637914077749033} - - component: {fileID: 1413838796850282447} - - component: {fileID: 8686981296864519513} - m_Layer: 5 - m_Name: BackgroundHover - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2272509546852291813 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4821310409670062188} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 3396158114295011782} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &566637914077749033 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4821310409670062188} - m_CullTransparentMesh: 0 ---- !u!114 &1413838796850282447 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4821310409670062188} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: d254a3a3b9d5642e1ad6432c441d7f43, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!114 &8686981296864519513 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4821310409670062188} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 1 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1 &5882466693401708938 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7486992503874397319} - - component: {fileID: 8166920083568293874} - - component: {fileID: 7209871093031296405} - m_Layer: 5 - m_Name: ImageMute - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7486992503874397319 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5882466693401708938} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 7371158987296751489} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -0.0063, y: -1.4847} - m_SizeDelta: {x: 14.4534, y: 14.4534} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8166920083568293874 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5882466693401708938} - m_CullTransparentMesh: 0 ---- !u!114 &7209871093031296405 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5882466693401708938} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 72818d20470f74645a54d6986b4288ef, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &5986099247502732994 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2596717871274498742} - - component: {fileID: 2252691349226898380} - m_Layer: 5 - m_Name: AvatarHead - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2596717871274498742 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5986099247502732994} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1.8197571, y: 1.8197571, z: 1.8197571} - m_Children: - - {fileID: 2386799260785884631} - - {fileID: 492369415968596128} - - {fileID: 4787256613170298974} - m_Father: {fileID: 4015831565147992809} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 18.806114, y: 18.806114} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2252691349226898380 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5986099247502732994} - m_CullTransparentMesh: 0 ---- !u!1 &6342663756161018864 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5652249184453126303} - - component: {fileID: 4645929392517299390} - - component: {fileID: 2064734583928680241} - m_Layer: 5 - m_Name: Friend - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5652249184453126303 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6342663756161018864} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 8787606036367362250} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 232.05408, y: 18.411652} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4645929392517299390 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6342663756161018864} - m_CullTransparentMesh: 0 ---- !u!114 &2064734583928680241 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6342663756161018864} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Friend - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: a02669827dd9144f39b4b164e753a21a, type: 2} - m_sharedMaterial: {fileID: 1196159134475820439, guid: a02669827dd9144f39b4b164e753a21a, - type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4284678399 - m_fontColor: {r: 1, g: 0, b: 0.3882353, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 12 - m_fontSizeBase: 12 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 18 - m_fontStyle: 16 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 0 - m_wordWrappingRatios: 0.4 - m_overflowMode: 1 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &6951507585752195574 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8368122532035636769} - m_Layer: 5 - m_Name: MenuPositionReference - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8368122532035636769 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6951507585752195574} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4164969010545187739} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 100, y: 100} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &7192405918133665469 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1421355190917969326} - - component: {fileID: 1233164277503357736} - - component: {fileID: 2915710574617329716} - m_Layer: 5 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1421355190917969326 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7192405918133665469} - m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 273071016526647174} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 15, y: 27} - m_SizeDelta: {x: 57, y: 56} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1233164277503357736 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7192405918133665469} - m_CullTransparentMesh: 0 ---- !u!114 &2915710574617329716 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7192405918133665469} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 270c3bffb7809438bbdcb901239beff2, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &7238439130982603396 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7513191566659812362} - - component: {fileID: 1789901403999841587} - - component: {fileID: 3589543194177893144} - m_Layer: 5 - m_Name: Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7513191566659812362 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7238439130982603396} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 2386799260785884631} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 18.333572, y: 18.333572} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1789901403999841587 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7238439130982603396} - m_CullTransparentMesh: 0 ---- !u!114 &3589543194177893144 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7238439130982603396} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &7282222620181779654 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 605935011668989766} - - component: {fileID: 6854489538897936173} - - component: {fileID: 1095619433064165398} - m_Layer: 5 - m_Name: MicIcon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &605935011668989766 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7282222620181779654} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 7371158987296751489} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -0.0063, y: -0.2074} - m_SizeDelta: {x: 12.6893, y: 19.9403} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6854489538897936173 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7282222620181779654} - m_CullTransparentMesh: 0 ---- !u!114 &1095619433064165398 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7282222620181779654} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.1254902, g: 0.2, b: 0.27058825, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: ce0e66cca3918473693726f3bf7da082, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &8258925697796356607 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3345788226721278540} - - component: {fileID: 4984777542339593560} - - component: {fileID: 1709964029938092049} - m_Layer: 5 - m_Name: Picture - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3345788226721278540 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8258925697796356607} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 2386799260785884631} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 17.963257, y: 17.963257} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4984777542339593560 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8258925697796356607} - m_CullTransparentMesh: 0 ---- !u!114 &1709964029938092049 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8258925697796356607} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Texture: {fileID: 0} - m_UVRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 ---- !u!1 &8720862433428437312 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4787256613170298974} - - component: {fileID: 6394222196411753371} - - component: {fileID: 1503619451681143321} - m_Layer: 5 - m_Name: BlockFrame - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &4787256613170298974 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8720862433428437312} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 2596717871274498742} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.000024795532, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6394222196411753371 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8720862433428437312} - m_CullTransparentMesh: 0 ---- !u!114 &1503619451681143321 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8720862433428437312} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: a26c049177d1b423cbf29f2f44dd73c2, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &9115294937250726361 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5750925742049168255} - - component: {fileID: 6827699563103301467} - - component: {fileID: 5153465745378546742} - m_Layer: 5 - m_Name: UserName - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5750925742049168255 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9115294937250726361} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 8787606036367362250} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 232.05408, y: 22.07608} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6827699563103301467 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9115294937250726361} - m_CullTransparentMesh: 0 ---- !u!114 &5153465745378546742 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9115294937250726361} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: User Name - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: a02669827dd9144f39b4b164e753a21a, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: 74b83fa9a54124695b9bdd8bea96fa17, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4278190080 - m_fontColor: {r: 0, g: 0, b: 0, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 16 - m_fontSizeBase: 16 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 18 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 0 - m_wordWrappingRatios: 0.4 - m_overflowMode: 1 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs/UsersListElement.prefab.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs/UsersListElement.prefab.meta deleted file mode 100644 index bf248571d1..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs/UsersListElement.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 0d23c770788204379bc453d5a8270653 -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs/VoiceChatSpinBox.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs/VoiceChatSpinBox.prefab deleted file mode 100644 index b67dba9012..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs/VoiceChatSpinBox.prefab +++ /dev/null @@ -1,1208 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &509252978882600128 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7963396939902624516} - - component: {fileID: 4511702780022386569} - - component: {fileID: 5533378053873845403} - m_Layer: 5 - m_Name: Label - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7963396939902624516 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 509252978882600128} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 7080682805098910046} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -60, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4511702780022386569 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 509252978882600128} - m_CullTransparentMesh: 0 ---- !u!114 &5533378053873845403 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 509252978882600128} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Default - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: a02669827dd9144f39b4b164e753a21a, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: 74b83fa9a54124695b9bdd8bea96fa17, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4278190080 - m_fontColor: {r: 0, g: 0, b: 0, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 14 - m_fontSizeBase: 5 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 10 - m_fontSizeMax: 14 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 3 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0.46817017} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &1083159201727630468 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8789181058068879866} - m_Layer: 5 - m_Name: Container - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8789181058068879866 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1083159201727630468} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 3781809617804807125} - - {fileID: 1493839374699080646} - m_Father: {fileID: 3731816843781449031} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 13.3, y: 119.5} - m_SizeDelta: {x: 220, y: 19.29} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &2156773142576115389 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2584387650180609955} - - component: {fileID: 7225648318057565487} - - component: {fileID: 8835402687561204209} - m_Layer: 5 - m_Name: Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2584387650180609955 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2156773142576115389} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 7080682805098910046} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 4} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &7225648318057565487 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2156773142576115389} - m_CullTransparentMesh: 0 ---- !u!114 &8835402687561204209 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2156773142576115389} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.9529412, g: 0.9529412, b: 0.9529412, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: a3a66afb0cf6d49da8b0b2b18f7b20d0, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!1 &3138202598610088222 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1493839374699080646} - m_Layer: 5 - m_Name: ControlContainer - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1493839374699080646 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3138202598610088222} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 7080682805098910046} - m_Father: {fileID: 8789181058068879866} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 226.54, y: -7.5} - m_SizeDelta: {x: 157.78998, y: 40} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &3895799559917923436 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3781809617804807125} - - component: {fileID: 5621281399442779270} - - component: {fileID: 946022103321159557} - m_Layer: 5 - m_Name: Title - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3781809617804807125 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3895799559917923436} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 817144815719547042} - m_Father: {fileID: 8789181058068879866} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 45.3, y: 0} - m_SizeDelta: {x: 90, y: 15} - m_Pivot: {x: 0.5, y: 1} ---- !u!222 &5621281399442779270 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3895799559917923436} - m_CullTransparentMesh: 0 ---- !u!114 &946022103321159557 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3895799559917923436} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: VOICE CHAT - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: a02669827dd9144f39b4b164e753a21a, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: 74b83fa9a54124695b9bdd8bea96fa17, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4278190080 - m_fontColor: {r: 0, g: 0, b: 0, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 14 - m_fontSizeBase: 14 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &4012967013176482892 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7080682805098910046} - - component: {fileID: 3837855004225010386} - m_Layer: 5 - m_Name: SpinBoxQualityPreset - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7080682805098910046 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4012967013176482892} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2584387650180609955} - - {fileID: 2223867003193706722} - - {fileID: 5306461715634448574} - - {fileID: 7963396939902624516} - m_Father: {fileID: 1493839374699080646} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 3, y: 0} - m_SizeDelta: {x: 147.79651, y: 20} - m_Pivot: {x: 0, y: 0.5} ---- !u!114 &3837855004225010386 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4012967013176482892} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d722f1cc61b16442b9d19ce2de5c90fe, type: 3} - m_Name: - m_EditorClassIdentifier: - textLabel: {fileID: 5533378053873845403} - increaseButton: {fileID: 1471429999062173192} - decreaseButton: {fileID: 232813202614310292} - labels: - - All users - - Verified users - - Friends - startingValue: 0 - loop: 1 - onValueChanged: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &4460414688733113004 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8280791779102780461} - - component: {fileID: 7896685382720644304} - - component: {fileID: 5519006164083047270} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8280791779102780461 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4460414688733113004} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 817144815719547042} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &7896685382720644304 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4460414688733113004} - m_CullTransparentMesh: 0 ---- !u!114 &5519006164083047270 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4460414688733113004} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: beta - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: a02669827dd9144f39b4b164e753a21a, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: 74b83fa9a54124695b9bdd8bea96fa17, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 13 - m_fontSizeBase: 6.5 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 10 - m_fontSizeMax: 13 - m_fontStyle: 16 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0.46817017} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &4943351020373103430 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7319752919325572531} - - component: {fileID: 1042511896303968480} - - component: {fileID: 1685552636221019275} - m_Layer: 5 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7319752919325572531 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4943351020373103430} - m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 5306461715634448574} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 8, y: 8} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1042511896303968480 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4943351020373103430} - m_CullTransparentMesh: 0 ---- !u!114 &1685552636221019275 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4943351020373103430} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 61971e3b2b11044eca7dcd6f96952405, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &5884397133996633093 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 817144815719547042} - - component: {fileID: 8795725728733391025} - - component: {fileID: 7001160156879721350} - m_Layer: 5 - m_Name: LabelBeta - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &817144815719547042 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5884397133996633093} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 8280791779102780461} - m_Father: {fileID: 3781809617804807125} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 72.5, y: -0.000022888184} - m_SizeDelta: {x: 47.3759, y: 20.6273} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8795725728733391025 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5884397133996633093} - m_CullTransparentMesh: 0 ---- !u!114 &7001160156879721350 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5884397133996633093} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 0.1764706, b: 0.33333334, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: d40ff76fa8b254a8c9ed7c57ce1c9e21, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!1 &6090183151121045792 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2176003390713149032} - - component: {fileID: 8980050401053270120} - - component: {fileID: 6946578528177286607} - m_Layer: 5 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2176003390713149032 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6090183151121045792} - m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: -1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 2223867003193706722} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 8, y: 8} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8980050401053270120 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6090183151121045792} - m_CullTransparentMesh: 0 ---- !u!114 &6946578528177286607 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6090183151121045792} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 61971e3b2b11044eca7dcd6f96952405, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &7539466792330612038 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5306461715634448574} - - component: {fileID: 2473769457060950855} - - component: {fileID: 1994506718636682904} - - component: {fileID: 1471429999062173192} - - component: {fileID: 3559823154626493462} - - component: {fileID: 3068583372830153485} - m_Layer: 5 - m_Name: ButtonIncrease - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5306461715634448574 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7539466792330612038} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 7319752919325572531} - m_Father: {fileID: 7080682805098910046} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 0.5} - m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: -12.1, y: 0} - m_SizeDelta: {x: 20, y: 20} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2473769457060950855 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7539466792330612038} - m_CullTransparentMesh: 0 ---- !u!114 &1994506718636682904 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7539466792330612038} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 4b1c9751d9ed642a190d2431fa02b5f8, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!114 &1471429999062173192 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7539466792330612038} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} - m_PressedColor: {r: 0.98039216, g: 0.98039216, b: 0.98039216, a: 1} - m_SelectedColor: {r: 1, g: 1, b: 1, a: 1} - m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 1994506718636682904} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &3559823154626493462 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7539466792330612038} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d30b4ce08e6854094b8461fdea1282aa, type: 3} - m_Name: - m_EditorClassIdentifier: - targetRectTransform: {fileID: 5306461715634448574} - hoverScale: 1.05 - normalScale: 1 ---- !u!114 &3068583372830153485 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7539466792330612038} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4bfd0d144b6d3dd438b84fa14a062c4f, type: 3} - m_Name: - m_EditorClassIdentifier: - playHover: 1 - playClick: 1 - playRelease: 1 - extraClickEvent: {fileID: 0} ---- !u!1 &7951948174597467371 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3731816843781449031} - - component: {fileID: 6851048172431228983} - m_Layer: 5 - m_Name: VoiceChatSpinBox - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3731816843781449031 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7951948174597467371} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 8789181058068879866} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 220, y: 55} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &6851048172431228983 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7951948174597467371} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 1 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1 &9137623970578278229 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2223867003193706722} - - component: {fileID: 5025198849013728087} - - component: {fileID: 8760731597316476144} - - component: {fileID: 232813202614310292} - - component: {fileID: 855739907976044073} - - component: {fileID: 5195926852169476883} - m_Layer: 5 - m_Name: ButtonDecrease - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2223867003193706722 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9137623970578278229} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2176003390713149032} - m_Father: {fileID: 7080682805098910046} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 11.7, y: 0} - m_SizeDelta: {x: 20, y: 20} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5025198849013728087 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9137623970578278229} - m_CullTransparentMesh: 0 ---- !u!114 &8760731597316476144 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9137623970578278229} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 4b1c9751d9ed642a190d2431fa02b5f8, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!114 &232813202614310292 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9137623970578278229} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} - m_PressedColor: {r: 0.98039216, g: 0.98039216, b: 0.98039216, a: 1} - m_SelectedColor: {r: 1, g: 1, b: 1, a: 1} - m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 8760731597316476144} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &855739907976044073 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9137623970578278229} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d30b4ce08e6854094b8461fdea1282aa, type: 3} - m_Name: - m_EditorClassIdentifier: - targetRectTransform: {fileID: 2223867003193706722} - hoverScale: 1.05 - normalScale: 1 ---- !u!114 &5195926852169476883 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9137623970578278229} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4bfd0d144b6d3dd438b84fa14a062c4f, type: 3} - m_Name: - m_EditorClassIdentifier: - playHover: 1 - playClick: 1 - playRelease: 1 - extraClickEvent: {fileID: 0} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs/VoiceChatSpinBox.prefab.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs/VoiceChatSpinBox.prefab.meta deleted file mode 100644 index 1352499870..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Prefabs/VoiceChatSpinBox.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 309af649f75654ff39f6fcc800d62c52 -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Resources.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Resources.meta deleted file mode 100644 index 31751156ed..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Resources.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: ee21ab70764b44b558c3b8c66aff8f62 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Resources/UsersAroundListHUD.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Resources/UsersAroundListHUD.prefab deleted file mode 100644 index eb0b779639..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Resources/UsersAroundListHUD.prefab +++ /dev/null @@ -1,5054 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &1102096634 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1102096635} - - component: {fileID: 1102096638} - - component: {fileID: 1102096637} - - component: {fileID: 1102096636} - m_Layer: 5 - m_Name: LabelMute - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1102096635 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1102096634} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 7150860118078737506} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 237.69995, y: -13.6} - m_SizeDelta: {x: 83.478775, y: 22.456251} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1102096638 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1102096634} - m_CullTransparentMesh: 0 ---- !u!114 &1102096637 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1102096634} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: MUTE ALL - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: a02669827dd9144f39b4b164e753a21a, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: 74b83fa9a54124695b9bdd8bea96fa17, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4278190080 - m_fontColor: {r: 0, g: 0, b: 0, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 14 - m_fontSizeBase: 14 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 16 - m_HorizontalAlignment: 4 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_TextWrappingMode: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_EmojiFallbackSupport: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!114 &1102096636 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1102096634} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 1 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1 &7968590191587554 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2558975756928332948} - - component: {fileID: 8541523309149836770} - - component: {fileID: 7193889332112712897} - m_Layer: 5 - m_Name: Space - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2558975756928332948 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7968590191587554} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2956868879258149217} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 100, y: 1} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8541523309149836770 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7968590191587554} - m_CullTransparentMesh: 0 ---- !u!114 &7193889332112712897 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7968590191587554} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 0} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &710864146006403311 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3316734886436899191} - - component: {fileID: 1329050359254363251} - - component: {fileID: 153798981289388633} - m_Layer: 5 - m_Name: Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3316734886436899191 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 710864146006403311} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 5537168194224860024} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -72.05003, y: 0.5} - m_SizeDelta: {x: 24.4085, y: 23.7662} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1329050359254363251 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 710864146006403311} - m_CullTransparentMesh: 0 ---- !u!114 &153798981289388633 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 710864146006403311} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: d1530a26cd1484393bd6f29419fe7ad3, type: 3} - m_Type: 0 - m_PreserveAspect: 1 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &1459082009101300264 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1868459647109155936} - - component: {fileID: 4716911397187610032} - m_Layer: 5 - m_Name: PopupsContainer - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1868459647109155936 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1459082009101300264} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 3037204315536533953} - - {fileID: 7887208196134065619} - m_Father: {fileID: 3866157782987366350} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &4716911397187610032 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1459082009101300264} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 1 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1 &1794482349391239364 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2148732330824131559} - - component: {fileID: 193400910863965171} - - component: {fileID: 2030967565028691460} - m_Layer: 5 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2148732330824131559 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1794482349391239364} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 7150860118078737506} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -3.300003, y: 0} - m_SizeDelta: {x: -34.984528, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &193400910863965171 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1794482349391239364} - m_CullTransparentMesh: 0 ---- !u!114 &2030967565028691460 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1794482349391239364} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: PLAYERS ({0}) - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: a02669827dd9144f39b4b164e753a21a, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: 74b83fa9a54124695b9bdd8bea96fa17, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4278190080 - m_fontColor: {r: 0, g: 0, b: 0, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 14 - m_fontSizeBase: 14 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_TextWrappingMode: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_EmojiFallbackSupport: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &3197134324557996537 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2435646229614955561} - - component: {fileID: 160736044836013571} - - component: {fileID: 1131026010808105649} - m_Layer: 5 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2435646229614955561 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3197134324557996537} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 7919318306925970869} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 1} - m_AnchorMax: {x: 0.5, y: 1} - m_AnchoredPosition: {x: 0, y: -25} - m_SizeDelta: {x: 280, y: 30} - m_Pivot: {x: 0.5, y: 1} ---- !u!222 &160736044836013571 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3197134324557996537} - m_CullTransparentMesh: 0 ---- !u!114 &1131026010808105649 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3197134324557996537} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: You are the only player in this scene. - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: c0f2e4affe3f2438d9042ca1db45764f, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: 70f3d6b07a517476dbd2b89cf148f858, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4283772415 - m_fontColor: {r: 1, g: 0.1764706, b: 0.33333334, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 16 - m_fontSizeBase: 16 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: -2 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_TextWrappingMode: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_EmojiFallbackSupport: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &4426213859173330826 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 68614839704429010} - - component: {fileID: 2256215425126006821} - - component: {fileID: 4156590943538340390} - - component: {fileID: 2911345154281567359} - - component: {fileID: 1076684776} - m_Layer: 5 - m_Name: Scrollbar Vertical - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &68614839704429010 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4426213859173330826} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1968423421655585717} - m_Father: {fileID: 4547125968938856368} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -6, y: -80} - m_SizeDelta: {x: 6, y: -110} - m_Pivot: {x: 1, y: 1} ---- !u!222 &2256215425126006821 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4426213859173330826} - m_CullTransparentMesh: 0 ---- !u!114 &4156590943538340390 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4426213859173330826} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 0} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!114 &2911345154281567359 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4426213859173330826} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 2848366822303428748} - m_HandleRect: {fileID: 7437318031689893040} - m_Direction: 2 - m_Value: 1 - m_Size: 0.99999994 - m_NumberOfSteps: 0 - m_OnValueChanged: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &1076684776 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4426213859173330826} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 1 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1 &4493636448431892638 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4113949495183213455} - - component: {fileID: 3934277205936804115} - - component: {fileID: 3435813997902651297} - - component: {fileID: 6165451380281328762} - m_Layer: 5 - m_Name: BubblePeak - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4113949495183213455 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4493636448431892638} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3866157782987366350} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 216, y: -292.6} - m_SizeDelta: {x: 28, y: 28} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3934277205936804115 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4493636448431892638} - m_CullTransparentMesh: 0 ---- !u!114 &3435813997902651297 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4493636448431892638} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 47acd065431664e80a9a8cdedf8acb31, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!114 &6165451380281328762 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4493636448431892638} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 1 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1 &4934704126590422645 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1095782933300744801} - - component: {fileID: 3605907682428420604} - - component: {fileID: 30274976277713944} - - component: {fileID: 5979767191239130454} - m_Layer: 5 - m_Name: Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1095782933300744801 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4934704126590422645} - m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 4547125968938856368} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 170.03409, y: -22.310669} - m_SizeDelta: {x: 44.4213, y: 330} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3605907682428420604 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4934704126590422645} - m_CullTransparentMesh: 0 ---- !u!114 &30274976277713944 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4934704126590422645} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 42402c03014144e64b56b0f83f883e5e, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 3 ---- !u!114 &5979767191239130454 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4934704126590422645} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 1 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1 &5177587120558323899 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3866157782987366350} - - component: {fileID: 53184777511391753} - - component: {fileID: 8394226051140589040} - - component: {fileID: 1247891530875598981} - - component: {fileID: 6788742280099091457} - - component: {fileID: 3928726177293840161} - - component: {fileID: 1818421760890632532} - - component: {fileID: 726579319} - - component: {fileID: 7297809386921154479} - m_Layer: 5 - m_Name: UsersAroundListHUD - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3866157782987366350 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5177587120558323899} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0, y: 0, z: 0} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 4113949495183213455} - - {fileID: 4547125968938856368} - - {fileID: 3992345893961360119} - - {fileID: 1868459647109155936} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 0} ---- !u!114 &53184777511391753 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5177587120558323899} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ade75a8604eeb4738895fd32d003b48e, type: 3} - m_Name: - m_EditorClassIdentifier: - listElementView: {fileID: 2882668193370184740} - showHideAnimator: {fileID: 1818421760890632532} - textPlayersTitle: {fileID: 2030967565028691460} - contentPlayers: {fileID: 2956868879258149217} - muteAllToggle: {fileID: 8127302986235340493} - contextMenu: {fileID: 5982296756742802019} - confirmationDialog: {fileID: 5673285788275393845} - emptyListGameObject: {fileID: 6350976748315781347} - gotoCrowdButton: {fileID: 5741810867883838706} - voiceChatSpinBox: {fileID: 3598224504690490722} ---- !u!223 &8394226051140589040 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5177587120558323899} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 0 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 25 - m_SortingLayerID: 0 - m_SortingOrder: 2 - m_TargetDisplay: 0 ---- !u!114 &1247891530875598981 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5177587120558323899} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 1 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 1680, y: 1050} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 1 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 0 ---- !u!114 &6788742280099091457 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5177587120558323899} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!225 &3928726177293840161 -CanvasGroup: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5177587120558323899} - m_Enabled: 1 - m_Alpha: 1 - m_Interactable: 1 - m_BlocksRaycasts: 1 - m_IgnoreParentGroups: 0 ---- !u!114 &1818421760890632532 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5177587120558323899} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d8b939b5bedb9494b806609faeda7d8d, type: 3} - m_Name: - m_EditorClassIdentifier: - hideOnEnable: 0 - animSpeedFactor: 1 - disableAfterFadeOut: 1 - canvasGroup: {fileID: 0} ---- !u!114 &726579319 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5177587120558323899} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 18 - m_Right: 0 - m_Top: 290 - m_Bottom: 156 - m_ChildAlignment: 0 - m_Spacing: 0 - m_ChildForceExpandWidth: 0 - m_ChildForceExpandHeight: 0 - m_ChildControlWidth: 0 - m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!114 &7297809386921154479 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5177587120558323899} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 30cedd7c5f8c0064e98640b29b2156a5, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1 &5317101469573138836 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5537168194224860024} - - component: {fileID: 3896497570479873370} - - component: {fileID: 2832166056524257663} - - component: {fileID: 5741810867883838706} - - component: {fileID: 5587232576110765360} - m_Layer: 5 - m_Name: GoToCrowd - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5537168194224860024 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5317101469573138836} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 3316734886436899191} - - {fileID: 7277541904969810876} - m_Father: {fileID: 7919318306925970869} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0} - m_AnchorMax: {x: 0.5, y: 0} - m_AnchoredPosition: {x: 0, y: 34} - m_SizeDelta: {x: 248, y: 50} - m_Pivot: {x: 0.5, y: 0} ---- !u!222 &3896497570479873370 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5317101469573138836} - m_CullTransparentMesh: 0 ---- !u!114 &2832166056524257663 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5317101469573138836} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 0.1764706, b: 0.33333334, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: f02af068e11cb4902a1a4faad10b890a, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!114 &5741810867883838706 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5317101469573138836} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 1125896304279764410} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &5587232576110765360 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5317101469573138836} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4bfd0d144b6d3dd438b84fa14a062c4f, type: 3} - m_Name: - m_EditorClassIdentifier: - playHover: 1 - playClick: 1 - playRelease: 1 - extraClickEvent: {fileID: 0} ---- !u!1 &5995428313985922737 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7277541904969810876} - - component: {fileID: 48406825299055066} - - component: {fileID: 6262858015344213612} - m_Layer: 5 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7277541904969810876 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5995428313985922737} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 5537168194224860024} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.31246218, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -5.8, y: 0} - m_SizeDelta: {x: -8.091797, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &48406825299055066 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5995428313985922737} - m_CullTransparentMesh: 0 ---- !u!114 &6262858015344213612 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5995428313985922737} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Join the Crowd - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: a02669827dd9144f39b4b164e753a21a, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: 74b83fa9a54124695b9bdd8bea96fa17, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 15 - m_fontSizeBase: 15 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 16 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_TextWrappingMode: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_EmojiFallbackSupport: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &6055363491049793778 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2956868879258149217} - - component: {fileID: 6139679549190006078} - m_Layer: 5 - m_Name: Players - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2956868879258149217 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6055363491049793778} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 7150860118078737506} - - {fileID: 2558975756928332948} - - {fileID: 7919318306925970869} - - {fileID: 8118172451955803044} - m_Father: {fileID: 6385060616518280574} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &6139679549190006078 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6055363491049793778} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 1 - m_Right: 0 - m_Top: 0 - m_Bottom: 10 - m_ChildAlignment: 1 - m_Spacing: 6 - m_ChildForceExpandWidth: 0 - m_ChildForceExpandHeight: 0 - m_ChildControlWidth: 0 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!1 &6070994175395488073 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1313177016226705103} - - component: {fileID: 4287130404695814124} - - component: {fileID: 6194178811341187240} - m_Layer: 5 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1313177016226705103 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6070994175395488073} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 7919318306925970869} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 6, y: 22} - m_SizeDelta: {x: 248, y: 36} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4287130404695814124 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6070994175395488073} - m_CullTransparentMesh: 0 ---- !u!114 &6194178811341187240 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6070994175395488073} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: The metaverse is better with friends. - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 6708c7eadd49b49f4ac3469e5104e7c9, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: dd1effe058ec94479a0dd10765262662, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4278190080 - m_fontColor: {r: 0, g: 0, b: 0, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 20 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: -1 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_TextWrappingMode: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_EmojiFallbackSupport: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &6094055690743740254 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4547125968938856368} - - component: {fileID: 6386820684957456223} - - component: {fileID: 1253961915410315844} - - component: {fileID: 3302409501547188859} - - component: {fileID: 46097076} - - component: {fileID: 1996280664042206587} - m_Layer: 5 - m_Name: Scroll View - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4547125968938856368 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6094055690743740254} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1095782933300744801} - - {fileID: 2828657937425296497} - - {fileID: 68614839704429010} - m_Father: {fileID: 3866157782987366350} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 340, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6386820684957456223 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6094055690743740254} - m_CullTransparentMesh: 0 ---- !u!114 &1253961915410315844 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6094055690743740254} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.91764706, g: 0.91764706, b: 0.91764706, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: a3858430b23c149488cbba79c79b511f, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!114 &3302409501547188859 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6094055690743740254} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Content: {fileID: 6385060616518280574} - m_Horizontal: 0 - m_Vertical: 1 - m_MovementType: 2 - m_Elasticity: 0.1 - m_Inertia: 0 - m_DecelerationRate: 0.135 - m_ScrollSensitivity: 10 - m_Viewport: {fileID: 2828657937425296497} - m_HorizontalScrollbar: {fileID: 0} - m_VerticalScrollbar: {fileID: 2911345154281567359} - m_HorizontalScrollbarVisibility: 2 - m_VerticalScrollbarVisibility: 2 - m_HorizontalScrollbarSpacing: -3 - m_VerticalScrollbarSpacing: -3 - m_OnValueChanged: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &46097076 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6094055690743740254} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 45 - m_Bottom: 8 - m_ChildAlignment: 0 - m_Spacing: 0 - m_ChildForceExpandWidth: 0 - m_ChildForceExpandHeight: 0 - m_ChildControlWidth: 1 - m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!114 &1996280664042206587 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6094055690743740254} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b85da332798fc458595ca5a677f1bf18, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1 &6350976748315781347 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7919318306925970869} - m_Layer: 5 - m_Name: EmptyList - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7919318306925970869 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6350976748315781347} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2435646229614955561} - - {fileID: 1313177016226705103} - - {fileID: 5537168194224860024} - m_Father: {fileID: 2956868879258149217} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 308, y: 242.72348} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &7747766763999261654 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1968423421655585717} - m_Layer: 5 - m_Name: Sliding Area - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1968423421655585717 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7747766763999261654} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 7437318031689893040} - m_Father: {fileID: 68614839704429010} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &8631820522309958958 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6385060616518280574} - - component: {fileID: 3358903341467286322} - m_Layer: 5 - m_Name: Content - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6385060616518280574 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8631820522309958958} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2956868879258149217} - m_Father: {fileID: 2828657937425296497} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &3358903341467286322 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8631820522309958958} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 4 - m_Right: 0 - m_Top: 0 - m_Bottom: 6 - m_ChildAlignment: 0 - m_Spacing: 8 - m_ChildForceExpandWidth: 0 - m_ChildForceExpandHeight: 0 - m_ChildControlWidth: 1 - m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!1 &8641036014709982772 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7150860118078737506} - - component: {fileID: 6219844789836954617} - - component: {fileID: 6654308684659587531} - m_Layer: 5 - m_Name: Header - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7150860118078737506 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8641036014709982772} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2148732330824131559} - - {fileID: 1102096635} - - {fileID: 1470770639874879913} - m_Father: {fileID: 2956868879258149217} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 330, y: 28} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6219844789836954617 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8641036014709982772} - m_CullTransparentMesh: 0 ---- !u!114 &6654308684659587531 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8641036014709982772} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.9529412, g: 0.9529412, b: 0.9529412, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &8706407531435547914 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7437318031689893040} - - component: {fileID: 159473499179152652} - - component: {fileID: 2848366822303428748} - m_Layer: 5 - m_Name: Handle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7437318031689893040 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8706407531435547914} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1968423421655585717} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &159473499179152652 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8706407531435547914} - m_CullTransparentMesh: 0 ---- !u!114 &2848366822303428748 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8706407531435547914} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 7b9d8b2a13149489fac02d8d802c41b6, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!1 &8999843318712220754 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2828657937425296497} - - component: {fileID: 7857581880795299273} - - component: {fileID: 8250389197956189721} - - component: {fileID: 7653281932886107364} - - component: {fileID: 2076136705} - - component: {fileID: 2076136706} - m_Layer: 5 - m_Name: Viewport - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2828657937425296497 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8999843318712220754} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 6385060616518280574} - m_Father: {fileID: 4547125968938856368} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 1} ---- !u!222 &7857581880795299273 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8999843318712220754} - m_CullTransparentMesh: 0 ---- !u!114 &8250389197956189721 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8999843318712220754} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!114 &7653281932886107364 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8999843318712220754} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} - m_Name: - m_EditorClassIdentifier: - m_ShowMaskGraphic: 0 ---- !u!114 &2076136705 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8999843318712220754} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 0 - m_MinWidth: -1 - m_MinHeight: 0 - m_PreferredWidth: -1 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!114 &2076136706 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8999843318712220754} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 0 - m_Spacing: 0 - m_ChildForceExpandWidth: 0 - m_ChildForceExpandHeight: 0 - m_ChildControlWidth: 1 - m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!1001 &337130973569730480 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 3866157782987366350} - m_Modifications: - - target: {fileID: 817144815719547042, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_SizeDelta.x - value: 46.460907 - objectReference: {fileID: 0} - - target: {fileID: 817144815719547042, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 70.63 - objectReference: {fileID: 0} - - target: {fileID: 946022103321159557, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_fontSize - value: 14 - objectReference: {fileID: 0} - - target: {fileID: 946022103321159557, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_fontColor.b - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 946022103321159557, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_fontColor.g - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 946022103321159557, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_fontColor.r - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 946022103321159557, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_fontSizeBase - value: 14 - objectReference: {fileID: 0} - - target: {fileID: 946022103321159557, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_sharedMaterial - value: - objectReference: {fileID: 2100000, guid: 74b83fa9a54124695b9bdd8bea96fa17, type: 2} - - target: {fileID: 946022103321159557, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_fontColor32.rgba - value: 4278190080 - objectReference: {fileID: 0} - - target: {fileID: 946022103321159557, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_textInfo.lineCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 946022103321159557, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_firstOverflowCharacterIndex - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1493839374699080646, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_SizeDelta.x - value: 170 - objectReference: {fileID: 0} - - target: {fileID: 1493839374699080646, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_SizeDelta.y - value: 40 - objectReference: {fileID: 0} - - target: {fileID: 1493839374699080646, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 238 - objectReference: {fileID: 0} - - target: {fileID: 1493839374699080646, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -8 - objectReference: {fileID: 0} - - target: {fileID: 2176003390713149032, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_SizeDelta.x - value: 10 - objectReference: {fileID: 0} - - target: {fileID: 2176003390713149032, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_SizeDelta.y - value: 8 - objectReference: {fileID: 0} - - target: {fileID: 2223867003193706722, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_SizeDelta.x - value: 20 - objectReference: {fileID: 0} - - target: {fileID: 2223867003193706722, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 12 - objectReference: {fileID: 0} - - target: {fileID: 2584387650180609955, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2584387650180609955, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3731816843781449031, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 3731816843781449031, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 3731816843781449031, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_RootOrder - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 3731816843781449031, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3731816843781449031, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3731816843781449031, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3731816843781449031, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_AnchorMin.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3731816843781449031, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_SizeDelta.x - value: 220 - objectReference: {fileID: 0} - - target: {fileID: 3731816843781449031, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3731816843781449031, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3731816843781449031, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3731816843781449031, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3731816843781449031, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3731816843781449031, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3731816843781449031, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3731816843781449031, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3731816843781449031, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 128 - objectReference: {fileID: 0} - - target: {fileID: 3731816843781449031, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -429 - objectReference: {fileID: 0} - - target: {fileID: 3731816843781449031, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3731816843781449031, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3731816843781449031, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3781809617804807125, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_SizeDelta.x - value: 88.86496 - objectReference: {fileID: 0} - - target: {fileID: 3781809617804807125, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_SizeDelta.y - value: 15 - objectReference: {fileID: 0} - - target: {fileID: 3781809617804807125, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 51.9 - objectReference: {fileID: 0} - - target: {fileID: 5306461715634448574, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_SizeDelta.x - value: 20 - objectReference: {fileID: 0} - - target: {fileID: 5306461715634448574, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_AnchoredPosition.x - value: -12 - objectReference: {fileID: 0} - - target: {fileID: 5519006164083047270, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_characterSpacing - value: -2 - objectReference: {fileID: 0} - - target: {fileID: 5533378053873845403, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_fontSize - value: 15 - objectReference: {fileID: 0} - - target: {fileID: 5533378053873845403, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_fontStyle - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5533378053873845403, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_fontSizeMax - value: 15 - objectReference: {fileID: 0} - - target: {fileID: 7080682805098910046, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_SizeDelta.x - value: 156 - objectReference: {fileID: 0} - - target: {fileID: 7080682805098910046, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_SizeDelta.y - value: 24 - objectReference: {fileID: 0} - - target: {fileID: 7080682805098910046, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 1.199997 - objectReference: {fileID: 0} - - target: {fileID: 7319752919325572531, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_SizeDelta.x - value: 10 - objectReference: {fileID: 0} - - target: {fileID: 7319752919325572531, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_SizeDelta.y - value: 8 - objectReference: {fileID: 0} - - target: {fileID: 7951948174597467371, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_Name - value: VoiceChatSpinBox - objectReference: {fileID: 0} - - target: {fileID: 7951948174597467371, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_IsActive - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 7963396939902624516, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_SizeDelta.x - value: -48 - objectReference: {fileID: 0} - - target: {fileID: 7963396939902624516, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8760731597316476144, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_Sprite - value: - objectReference: {fileID: 21300000, guid: 4b1c9751d9ed642a190d2431fa02b5f8, - type: 3} - - target: {fileID: 8760731597316476144, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_Color.b - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8760731597316476144, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_Color.g - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8760731597316476144, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_Color.r - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8789181058068879866, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 114 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 309af649f75654ff39f6fcc800d62c52, type: 3} ---- !u!114 &3598224504690490722 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 3837855004225010386, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - m_PrefabInstance: {fileID: 337130973569730480} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d722f1cc61b16442b9d19ce2de5c90fe, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!224 &3992345893961360119 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 3731816843781449031, guid: 309af649f75654ff39f6fcc800d62c52, - type: 3} - m_PrefabInstance: {fileID: 337130973569730480} - m_PrefabAsset: {fileID: 0} ---- !u!1001 &1542116367627646047 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 7150860118078737506} - m_Modifications: - - target: {fileID: 76430011557610998, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 76430011557610998, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 76430011557610998, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_RootOrder - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 76430011557610998, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 76430011557610998, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 76430011557610998, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 76430011557610998, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_AnchorMin.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 76430011557610998, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_SizeDelta.x - value: 34 - objectReference: {fileID: 0} - - target: {fileID: 76430011557610998, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_SizeDelta.y - value: 18 - objectReference: {fileID: 0} - - target: {fileID: 76430011557610998, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 76430011557610998, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 76430011557610998, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 76430011557610998, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 76430011557610998, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 76430011557610998, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 76430011557610998, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 76430011557610998, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 302.2 - objectReference: {fileID: 0} - - target: {fileID: 76430011557610998, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -13.6 - objectReference: {fileID: 0} - - target: {fileID: 76430011557610998, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 76430011557610998, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 76430011557610998, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 509733897164454118, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_Type - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 509733897164454118, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_Sprite - value: - objectReference: {fileID: 21300000, guid: d40ff76fa8b254a8c9ed7c57ce1c9e21, - type: 3} - - target: {fileID: 509733897164454118, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_Color.b - value: 0.8117647 - objectReference: {fileID: 0} - - target: {fileID: 509733897164454118, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_Color.g - value: 0.8117647 - objectReference: {fileID: 0} - - target: {fileID: 509733897164454118, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_Color.r - value: 0.8117647 - objectReference: {fileID: 0} - - target: {fileID: 509733897164454118, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_PixelsPerUnitMultiplier - value: 2.3 - objectReference: {fileID: 0} - - target: {fileID: 1336498976821121199, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_Name - value: SwitchMute - objectReference: {fileID: 0} - - target: {fileID: 3270688176704027960, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 0.11558914 - objectReference: {fileID: 0} - - target: {fileID: 3270688176704027960, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -0.0000019073486 - objectReference: {fileID: 0} - - target: {fileID: 4698780332374870846, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_Sprite - value: - objectReference: {fileID: 21300000, guid: 42eb1ceb0cb414d60b49ce912a143517, - type: 3} - - target: {fileID: 7318436178733870066, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7318436178733870066, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_AnchorMax.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 7318436178733870066, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_SizeDelta.x - value: 16 - objectReference: {fileID: 0} - - target: {fileID: 7318436178733870066, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_SizeDelta.y - value: 16 - objectReference: {fileID: 0} - - target: {fileID: 7318436178733870066, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 7318436178733870066, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 9e082320b645945208f8ee8fae9c7744, type: 3} ---- !u!1 &570409141015307504 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 1336498976821121199, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - m_PrefabInstance: {fileID: 1542116367627646047} - m_PrefabAsset: {fileID: 0} ---- !u!114 &9092663237746201522 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 570409141015307504} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 1 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!224 &1470770639874879913 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 76430011557610998, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - m_PrefabInstance: {fileID: 1542116367627646047} - m_PrefabAsset: {fileID: 0} ---- !u!114 &8127302986235340493 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7327156117581435538, guid: 9e082320b645945208f8ee8fae9c7744, - type: 3} - m_PrefabInstance: {fileID: 1542116367627646047} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 570409141015307504} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b45da7c8d77324738828376182c28acb, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!1001 &5121317755362111821 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 2956868879258149217} - m_Modifications: - - target: {fileID: 1773628464662520374, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_Name - value: UsersListElement - objectReference: {fileID: 0} - - target: {fileID: 1773628464662520374, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_IsActive - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1949795298173572877, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_Spacing - value: 4 - objectReference: {fileID: 0} - - target: {fileID: 1949795298173572877, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_Padding.m_Left - value: 6 - objectReference: {fileID: 0} - - target: {fileID: 1949795298173572877, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_Padding.m_Bottom - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2596717871274498742, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2596717871274498742, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2596717871274498742, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2596717871274498742, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015831565147992809, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4015831565147992809, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 4015831565147992809, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_RootOrder - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 4015831565147992809, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015831565147992809, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015831565147992809, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015831565147992809, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015831565147992809, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_SizeDelta.x - value: 306 - objectReference: {fileID: 0} - - target: {fileID: 4015831565147992809, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_SizeDelta.y - value: 44 - objectReference: {fileID: 0} - - target: {fileID: 4015831565147992809, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015831565147992809, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015831565147992809, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015831565147992809, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4015831565147992809, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015831565147992809, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015831565147992809, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015831565147992809, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015831565147992809, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015831565147992809, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015831565147992809, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4015831565147992809, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4164969010545187739, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4164969010545187739, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4164969010545187739, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4164969010545187739, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5153465745378546742, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_text - value: User name - objectReference: {fileID: 0} - - target: {fileID: 5153465745378546742, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_fontSize - value: 16 - objectReference: {fileID: 0} - - target: {fileID: 5153465745378546742, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_fontSizeMax - value: 16 - objectReference: {fileID: 0} - - target: {fileID: 5153465745378546742, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_fontSizeMin - value: 10 - objectReference: {fileID: 0} - - target: {fileID: 5153465745378546742, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_isTextTruncated - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5153465745378546742, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_textInfo.lineCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5153465745378546742, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_textInfo.pageCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5153465745378546742, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_textInfo.wordCount - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 5153465745378546742, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_textInfo.spaceCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5153465745378546742, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_textInfo.characterCount - value: 9 - objectReference: {fileID: 0} - - target: {fileID: 5652249184453126303, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5652249184453126303, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5652249184453126303, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_SizeDelta.x - value: 224.1703 - objectReference: {fileID: 0} - - target: {fileID: 5652249184453126303, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_SizeDelta.y - value: 18.4117 - objectReference: {fileID: 0} - - target: {fileID: 5652249184453126303, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5652249184453126303, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5750925742049168255, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5750925742049168255, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5750925742049168255, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_SizeDelta.x - value: 188.3944 - objectReference: {fileID: 0} - - target: {fileID: 5750925742049168255, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_SizeDelta.y - value: 22.0761 - objectReference: {fileID: 0} - - target: {fileID: 5750925742049168255, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5750925742049168255, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7371158987296751489, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7371158987296751489, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7371158987296751489, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7371158987296751489, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8787606036367362250, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8787606036367362250, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8787606036367362250, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_SizeDelta.x - value: 207.3362 - objectReference: {fileID: 0} - - target: {fileID: 8787606036367362250, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8787606036367362250, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 0d23c770788204379bc453d5a8270653, type: 3} ---- !u!114 &2882668193370184740 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 8003978662118944105, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - m_PrefabInstance: {fileID: 5121317755362111821} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2625b1f0cebe145849ec1e325b609497, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!224 &8118172451955803044 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 4015831565147992809, guid: 0d23c770788204379bc453d5a8270653, - type: 3} - m_PrefabInstance: {fileID: 5121317755362111821} - m_PrefabAsset: {fileID: 0} ---- !u!1001 &8042529880830868019 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 1868459647109155936} - m_Modifications: - - target: {fileID: 167966206939799589, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.y - value: 1.9999638 - objectReference: {fileID: 0} - - target: {fileID: 209470434955866080, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Pivot.x - value: 0.05 - objectReference: {fileID: 0} - - target: {fileID: 209470434955866080, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Pivot.y - value: 0.09 - objectReference: {fileID: 0} - - target: {fileID: 209470434955866080, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_RootOrder - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 209470434955866080, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 209470434955866080, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 209470434955866080, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 209470434955866080, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMin.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 209470434955866080, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 168 - objectReference: {fileID: 0} - - target: {fileID: 209470434955866080, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.y - value: 283.1 - objectReference: {fileID: 0} - - target: {fileID: 209470434955866080, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 209470434955866080, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 209470434955866080, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 209470434955866080, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 209470434955866080, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 209470434955866080, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 209470434955866080, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 209470434955866080, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 383.00003 - objectReference: {fileID: 0} - - target: {fileID: 209470434955866080, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -458.99997 - objectReference: {fileID: 0} - - target: {fileID: 209470434955866080, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 209470434955866080, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 209470434955866080, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 216683297733264312, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_IsActive - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 448103021969107721, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontSize - value: 15 - objectReference: {fileID: 0} - - target: {fileID: 448103021969107721, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontAsset - value: - objectReference: {fileID: 11400000, guid: a02669827dd9144f39b4b164e753a21a, - type: 2} - - target: {fileID: 448103021969107721, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontStyle - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 448103021969107721, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontSizeBase - value: 15 - objectReference: {fileID: 0} - - target: {fileID: 448103021969107721, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textAlignment - value: 65535 - objectReference: {fileID: 0} - - target: {fileID: 448103021969107721, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_sharedMaterial - value: - objectReference: {fileID: 2100000, guid: 74b83fa9a54124695b9bdd8bea96fa17, type: 2} - - target: {fileID: 448103021969107721, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_TextStyleHashCode - value: -1183493901 - objectReference: {fileID: 0} - - target: {fileID: 448103021969107721, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_VerticalAlignment - value: 512 - objectReference: {fileID: 0} - - target: {fileID: 448103021969107721, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.lineCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 448103021969107721, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.pageCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 448103021969107721, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.wordCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 448103021969107721, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.characterCount - value: 8 - objectReference: {fileID: 0} - - target: {fileID: 448103021969107721, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_firstOverflowCharacterIndex - value: -1 - objectReference: {fileID: 0} - - target: {fileID: 1235473171404075811, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Color.b - value: 0.96470594 - objectReference: {fileID: 0} - - target: {fileID: 1235473171404075811, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Color.g - value: 0.96470594 - objectReference: {fileID: 0} - - target: {fileID: 1235473171404075811, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Color.r - value: 0.96470594 - objectReference: {fileID: 0} - - target: {fileID: 1316612878266058666, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontSize - value: 15 - objectReference: {fileID: 0} - - target: {fileID: 1316612878266058666, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontAsset - value: - objectReference: {fileID: 11400000, guid: a02669827dd9144f39b4b164e753a21a, - type: 2} - - target: {fileID: 1316612878266058666, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontStyle - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1316612878266058666, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontSizeBase - value: 15 - objectReference: {fileID: 0} - - target: {fileID: 1316612878266058666, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textAlignment - value: 65535 - objectReference: {fileID: 0} - - target: {fileID: 1316612878266058666, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_sharedMaterial - value: - objectReference: {fileID: 2100000, guid: 74b83fa9a54124695b9bdd8bea96fa17, type: 2} - - target: {fileID: 1316612878266058666, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_TextStyleHashCode - value: -1183493901 - objectReference: {fileID: 0} - - target: {fileID: 1316612878266058666, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_VerticalAlignment - value: 512 - objectReference: {fileID: 0} - - target: {fileID: 1316612878266058666, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.lineCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1316612878266058666, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.pageCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1316612878266058666, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.wordCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1316612878266058666, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.characterCount - value: 6 - objectReference: {fileID: 0} - - target: {fileID: 1316612878266058666, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_firstOverflowCharacterIndex - value: -1 - objectReference: {fileID: 0} - - target: {fileID: 1499755327653435226, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Sprite - value: - objectReference: {fileID: 21300000, guid: a3a66afb0cf6d49da8b0b2b18f7b20d0, - type: 3} - - target: {fileID: 1499755327653435226, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Color.a - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1499755327653435226, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Color.b - value: 0.9716981 - objectReference: {fileID: 0} - - target: {fileID: 1499755327653435226, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Color.g - value: 0.9716981 - objectReference: {fileID: 0} - - target: {fileID: 1499755327653435226, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Color.r - value: 0.9716981 - objectReference: {fileID: 0} - - target: {fileID: 1499755327653435226, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_PixelsPerUnitMultiplier - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 1559391499053547033, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1559391499053547033, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMin.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1559391499053547033, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 148.26761 - objectReference: {fileID: 0} - - target: {fileID: 1559391499053547033, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 100.133804 - objectReference: {fileID: 0} - - target: {fileID: 1559391499053547033, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -61 - objectReference: {fileID: 0} - - target: {fileID: 1697453541807700629, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1697453541807700629, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMin.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1697453541807700629, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 200.26761 - objectReference: {fileID: 0} - - target: {fileID: 1697453541807700629, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.y - value: 203 - objectReference: {fileID: 0} - - target: {fileID: 1697453541807700629, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: -16.133804 - objectReference: {fileID: 0} - - target: {fileID: 1697453541807700629, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -283.1 - objectReference: {fileID: 0} - - target: {fileID: 1892122411516350061, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontSize - value: 11 - objectReference: {fileID: 0} - - target: {fileID: 1892122411516350061, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontAsset - value: - objectReference: {fileID: 11400000, guid: 6708c7eadd49b49f4ac3469e5104e7c9, - type: 2} - - target: {fileID: 1892122411516350061, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontSizeBase - value: 11 - objectReference: {fileID: 0} - - target: {fileID: 1892122411516350061, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_overflowMode - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1892122411516350061, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textAlignment - value: 65535 - objectReference: {fileID: 0} - - target: {fileID: 1892122411516350061, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_sharedMaterial - value: - objectReference: {fileID: 2100000, guid: dd1effe058ec94479a0dd10765262662, type: 2} - - target: {fileID: 1892122411516350061, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_isTextTruncated - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1892122411516350061, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_TextStyleHashCode - value: -1183493901 - objectReference: {fileID: 0} - - target: {fileID: 1892122411516350061, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_VerticalAlignment - value: 512 - objectReference: {fileID: 0} - - target: {fileID: 1892122411516350061, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_HorizontalAlignment - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 1892122411516350061, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.characterCount - value: 18 - objectReference: {fileID: 0} - - target: {fileID: 1892122411516350061, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_firstOverflowCharacterIndex - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1982332754799701023, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Spacing - value: 6 - objectReference: {fileID: 0} - - target: {fileID: 1982332754799701023, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Padding.m_Top - value: 10 - objectReference: {fileID: 0} - - target: {fileID: 1982332754799701023, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Padding.m_Bottom - value: 19 - objectReference: {fileID: 0} - - target: {fileID: 2087651782629628281, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: -24.169296 - objectReference: {fileID: 0} - - target: {fileID: 2087651782629628281, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.y - value: -22.090557 - objectReference: {fileID: 0} - - target: {fileID: 2087651782629628281, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 0.020000458 - objectReference: {fileID: 0} - - target: {fileID: 2087651782629628281, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 6.4 - objectReference: {fileID: 0} - - target: {fileID: 2414586391627009806, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 96.66882 - objectReference: {fileID: 0} - - target: {fileID: 2414586391627009806, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.y - value: 20 - objectReference: {fileID: 0} - - target: {fileID: 2414586391627009806, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 87.89998 - objectReference: {fileID: 0} - - target: {fileID: 2464177765233611761, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontSize - value: 11.5 - objectReference: {fileID: 0} - - target: {fileID: 2464177765233611761, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontAsset - value: - objectReference: {fileID: 11400000, guid: 6708c7eadd49b49f4ac3469e5104e7c9, - type: 2} - - target: {fileID: 2464177765233611761, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontSizeBase - value: 11.5 - objectReference: {fileID: 0} - - target: {fileID: 2464177765233611761, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_overflowMode - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2464177765233611761, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textAlignment - value: 65535 - objectReference: {fileID: 0} - - target: {fileID: 2464177765233611761, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_sharedMaterial - value: - objectReference: {fileID: 2100000, guid: dd1effe058ec94479a0dd10765262662, type: 2} - - target: {fileID: 2464177765233611761, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_TextStyleHashCode - value: -1183493901 - objectReference: {fileID: 0} - - target: {fileID: 2464177765233611761, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_VerticalAlignment - value: 512 - objectReference: {fileID: 0} - - target: {fileID: 2464177765233611761, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_HorizontalAlignment - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 2464177765233611761, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_firstOverflowCharacterIndex - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2583684662727995992, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontSize - value: 15 - objectReference: {fileID: 0} - - target: {fileID: 2583684662727995992, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontAsset - value: - objectReference: {fileID: 11400000, guid: a02669827dd9144f39b4b164e753a21a, - type: 2} - - target: {fileID: 2583684662727995992, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontStyle - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2583684662727995992, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontSizeBase - value: 15 - objectReference: {fileID: 0} - - target: {fileID: 2583684662727995992, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textAlignment - value: 65535 - objectReference: {fileID: 0} - - target: {fileID: 2583684662727995992, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_sharedMaterial - value: - objectReference: {fileID: 2100000, guid: 74b83fa9a54124695b9bdd8bea96fa17, type: 2} - - target: {fileID: 2583684662727995992, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_TextStyleHashCode - value: -1183493901 - objectReference: {fileID: 0} - - target: {fileID: 2583684662727995992, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_VerticalAlignment - value: 512 - objectReference: {fileID: 0} - - target: {fileID: 2583684662727995992, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.lineCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2583684662727995992, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.pageCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2583684662727995992, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.wordCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2583684662727995992, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.characterCount - value: 5 - objectReference: {fileID: 0} - - target: {fileID: 2583684662727995992, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_firstOverflowCharacterIndex - value: -1 - objectReference: {fileID: 0} - - target: {fileID: 2613626442612894089, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 96.66882 - objectReference: {fileID: 0} - - target: {fileID: 2613626442612894089, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.y - value: 20 - objectReference: {fileID: 0} - - target: {fileID: 2613626442612894089, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 87.89998 - objectReference: {fileID: 0} - - target: {fileID: 2742644055237271090, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Sprite - value: - objectReference: {fileID: 21300000, guid: 4fec551e960ee4ccca8b3390ea2d3071, - type: 3} - - target: {fileID: 2792442064173562756, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Color.b - value: 0.96470594 - objectReference: {fileID: 0} - - target: {fileID: 2792442064173562756, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Color.g - value: 0.96470594 - objectReference: {fileID: 0} - - target: {fileID: 2792442064173562756, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Color.r - value: 0.96470594 - objectReference: {fileID: 0} - - target: {fileID: 2954293574582867020, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Name - value: UserContextMenuPanel - objectReference: {fileID: 0} - - target: {fileID: 2954293574582867020, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3212861919107043162, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 96.66882 - objectReference: {fileID: 0} - - target: {fileID: 3212861919107043162, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.y - value: 20 - objectReference: {fileID: 0} - - target: {fileID: 3212861919107043162, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 87.89998 - objectReference: {fileID: 0} - - target: {fileID: 3815080001497336462, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3815080001497336462, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMin.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3815080001497336462, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 148.26761 - objectReference: {fileID: 0} - - target: {fileID: 3815080001497336462, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 100.133804 - objectReference: {fileID: 0} - - target: {fileID: 3815080001497336462, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -97 - objectReference: {fileID: 0} - - target: {fileID: 3877043805001231458, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Color.b - value: 0.96470594 - objectReference: {fileID: 0} - - target: {fileID: 3877043805001231458, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Color.g - value: 0.96470594 - objectReference: {fileID: 0} - - target: {fileID: 3877043805001231458, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Color.r - value: 0.96470594 - objectReference: {fileID: 0} - - target: {fileID: 4059980229021049056, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontAsset - value: - objectReference: {fileID: 11400000, guid: 26b03903800224f718b64e9afbc91b61, - type: 2} - - target: {fileID: 4059980229021049056, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textAlignment - value: 65535 - objectReference: {fileID: 0} - - target: {fileID: 4059980229021049056, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_sharedMaterial - value: - objectReference: {fileID: 2100000, guid: cbef7abfd5b4443bf9d5c298a464b5a6, type: 2} - - target: {fileID: 4059980229021049056, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_TextStyleHashCode - value: -1183493901 - objectReference: {fileID: 0} - - target: {fileID: 4059980229021049056, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_VerticalAlignment - value: 512 - objectReference: {fileID: 0} - - target: {fileID: 4059980229021049056, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.lineCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4059980229021049056, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.pageCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4059980229021049056, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.wordCount - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 4059980229021049056, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_HorizontalAlignment - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 4059980229021049056, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.spaceCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4059980229021049056, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.characterCount - value: 11 - objectReference: {fileID: 0} - - target: {fileID: 4366711961484996688, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Enabled - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4366711961484996688, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: confirmationDialog - value: - objectReference: {fileID: 5673285788275393845} - - target: {fileID: 4822288469338260327, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Sprite - value: - objectReference: {fileID: 21300000, guid: 6c9da2cade77947d3bc10b1ad5c4f532, - type: 3} - - target: {fileID: 4860190410571385085, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontSize - value: 12 - objectReference: {fileID: 0} - - target: {fileID: 4860190410571385085, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontAsset - value: - objectReference: {fileID: 11400000, guid: a02669827dd9144f39b4b164e753a21a, - type: 2} - - target: {fileID: 4860190410571385085, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontSizeBase - value: 12 - objectReference: {fileID: 0} - - target: {fileID: 4860190410571385085, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textAlignment - value: 65535 - objectReference: {fileID: 0} - - target: {fileID: 4860190410571385085, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_sharedMaterial - value: - objectReference: {fileID: 2100000, guid: 74b83fa9a54124695b9bdd8bea96fa17, type: 2} - - target: {fileID: 4860190410571385085, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_TextStyleHashCode - value: -1183493901 - objectReference: {fileID: 0} - - target: {fileID: 4860190410571385085, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_VerticalAlignment - value: 512 - objectReference: {fileID: 0} - - target: {fileID: 4860190410571385085, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_HorizontalAlignment - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 5191761706286609472, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5191761706286609472, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMin.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5191761706286609472, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 148.26761 - objectReference: {fileID: 0} - - target: {fileID: 5191761706286609472, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 100.133804 - objectReference: {fileID: 0} - - target: {fileID: 5191761706286609472, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -133 - objectReference: {fileID: 0} - - target: {fileID: 5439503378122742302, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontSize - value: 15 - objectReference: {fileID: 0} - - target: {fileID: 5439503378122742302, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontAsset - value: - objectReference: {fileID: 11400000, guid: a02669827dd9144f39b4b164e753a21a, - type: 2} - - target: {fileID: 5439503378122742302, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontStyle - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5439503378122742302, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontSizeBase - value: 15 - objectReference: {fileID: 0} - - target: {fileID: 5439503378122742302, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textAlignment - value: 65535 - objectReference: {fileID: 0} - - target: {fileID: 5439503378122742302, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_sharedMaterial - value: - objectReference: {fileID: 2100000, guid: 74b83fa9a54124695b9bdd8bea96fa17, type: 2} - - target: {fileID: 5439503378122742302, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_TextStyleHashCode - value: -1183493901 - objectReference: {fileID: 0} - - target: {fileID: 5439503378122742302, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_VerticalAlignment - value: 512 - objectReference: {fileID: 0} - - target: {fileID: 5439503378122742302, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.lineCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5439503378122742302, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.pageCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5439503378122742302, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.wordCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5439503378122742302, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.characterCount - value: 8 - objectReference: {fileID: 0} - - target: {fileID: 5439503378122742302, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_firstOverflowCharacterIndex - value: -1 - objectReference: {fileID: 0} - - target: {fileID: 5657370882933622279, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5682357761370751885, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Color.b - value: 0.96470594 - objectReference: {fileID: 0} - - target: {fileID: 5682357761370751885, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Color.g - value: 0.96470594 - objectReference: {fileID: 0} - - target: {fileID: 5682357761370751885, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Color.r - value: 0.96470594 - objectReference: {fileID: 0} - - target: {fileID: 5828753197699605478, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5829410902848862057, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Spacing - value: 10 - objectReference: {fileID: 0} - - target: {fileID: 5829410902848862057, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Padding.m_Top - value: 10 - objectReference: {fileID: 0} - - target: {fileID: 5829410902848862057, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Padding.m_Bottom - value: 10 - objectReference: {fileID: 0} - - target: {fileID: 5914279265284641863, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontSize - value: 11 - objectReference: {fileID: 0} - - target: {fileID: 5914279265284641863, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontStyle - value: 16 - objectReference: {fileID: 0} - - target: {fileID: 5914279265284641863, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontSizeMax - value: 11 - objectReference: {fileID: 0} - - target: {fileID: 5914279265284641863, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textAlignment - value: 65535 - objectReference: {fileID: 0} - - target: {fileID: 5914279265284641863, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_enableAutoSizing - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5914279265284641863, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_TextStyleHashCode - value: -1183493901 - objectReference: {fileID: 0} - - target: {fileID: 5914279265284641863, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_VerticalAlignment - value: 512 - objectReference: {fileID: 0} - - target: {fileID: 5914279265284641863, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.lineCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5914279265284641863, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.pageCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5914279265284641863, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.wordCount - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 5914279265284641863, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_HorizontalAlignment - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 5914279265284641863, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.spaceCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5914279265284641863, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.characterCount - value: 10 - objectReference: {fileID: 0} - - target: {fileID: 6208790594406829408, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6208790594406829408, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMin.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6208790594406829408, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 116 - objectReference: {fileID: 0} - - target: {fileID: 6208790594406829408, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.y - value: 79.1 - objectReference: {fileID: 0} - - target: {fileID: 6208790594406829408, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 84 - objectReference: {fileID: 0} - - target: {fileID: 6208790594406829408, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -40.55 - objectReference: {fileID: 0} - - target: {fileID: 6253118842325103068, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Sprite - value: - objectReference: {fileID: 21300000, guid: 4b1c9751d9ed642a190d2431fa02b5f8, - type: 3} - - target: {fileID: 6253118842325103068, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Color.a - value: 0.16470589 - objectReference: {fileID: 0} - - target: {fileID: 6314613212027488367, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6314613212027488367, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMin.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6314613212027488367, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 148.26761 - objectReference: {fileID: 0} - - target: {fileID: 6314613212027488367, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 100.133804 - objectReference: {fileID: 0} - - target: {fileID: 6314613212027488367, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -169 - objectReference: {fileID: 0} - - target: {fileID: 6351885843204886852, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontSize - value: 15 - objectReference: {fileID: 0} - - target: {fileID: 6351885843204886852, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontAsset - value: - objectReference: {fileID: 11400000, guid: a02669827dd9144f39b4b164e753a21a, - type: 2} - - target: {fileID: 6351885843204886852, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontStyle - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6351885843204886852, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_fontSizeBase - value: 15 - objectReference: {fileID: 0} - - target: {fileID: 6351885843204886852, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textAlignment - value: 65535 - objectReference: {fileID: 0} - - target: {fileID: 6351885843204886852, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_sharedMaterial - value: - objectReference: {fileID: 2100000, guid: 74b83fa9a54124695b9bdd8bea96fa17, type: 2} - - target: {fileID: 6351885843204886852, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_TextStyleHashCode - value: -1183493901 - objectReference: {fileID: 0} - - target: {fileID: 6351885843204886852, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_VerticalAlignment - value: 512 - objectReference: {fileID: 0} - - target: {fileID: 6351885843204886852, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.lineCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6351885843204886852, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.pageCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6351885843204886852, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.wordCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6351885843204886852, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_textInfo.characterCount - value: 7 - objectReference: {fileID: 0} - - target: {fileID: 6351885843204886852, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_firstOverflowCharacterIndex - value: -1 - objectReference: {fileID: 0} - - target: {fileID: 6506555174203901896, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 24 - objectReference: {fileID: 0} - - target: {fileID: 6506555174203901896, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.y - value: 24 - objectReference: {fileID: 0} - - target: {fileID: 6506555174203901896, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 18.999962 - objectReference: {fileID: 0} - - target: {fileID: 6644512341496027995, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 24 - objectReference: {fileID: 0} - - target: {fileID: 6644512341496027995, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.y - value: 24 - objectReference: {fileID: 0} - - target: {fileID: 6644512341496027995, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 18.999962 - objectReference: {fileID: 0} - - target: {fileID: 6918429432988714889, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Sprite - value: - objectReference: {fileID: 21300000, guid: 4b1c9751d9ed642a190d2431fa02b5f8, - type: 3} - - target: {fileID: 6918429432988714889, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Color.b - value: 0.33333334 - objectReference: {fileID: 0} - - target: {fileID: 6918429432988714889, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Color.g - value: 0.1764706 - objectReference: {fileID: 0} - - target: {fileID: 7121501207148520764, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 96.66882 - objectReference: {fileID: 0} - - target: {fileID: 7121501207148520764, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.y - value: 20 - objectReference: {fileID: 0} - - target: {fileID: 7121501207148520764, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 87.89998 - objectReference: {fileID: 0} - - target: {fileID: 7186371973213425299, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 96.66882 - objectReference: {fileID: 0} - - target: {fileID: 7186371973213425299, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.y - value: 20 - objectReference: {fileID: 0} - - target: {fileID: 7186371973213425299, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 87.89998 - objectReference: {fileID: 0} - - target: {fileID: 7391350145778653537, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7391350145778653537, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7391350145778653537, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7391350145778653537, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7593514545137235321, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_CullTransparentMesh - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 7621011522272249960, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 7621011522272249960, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMin.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 7621011522272249960, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 116 - objectReference: {fileID: 0} - - target: {fileID: 7621011522272249960, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.y - value: 30 - objectReference: {fileID: 0} - - target: {fileID: 7621011522272249960, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 58 - objectReference: {fileID: 0} - - target: {fileID: 7621011522272249960, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -15 - objectReference: {fileID: 0} - - target: {fileID: 7638105114331276104, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7638105114331276104, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.y - value: -21.486334 - objectReference: {fileID: 0} - - target: {fileID: 7638105114331276104, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7638105114331276104, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -6.4 - objectReference: {fileID: 0} - - target: {fileID: 7685703826391962030, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 24 - objectReference: {fileID: 0} - - target: {fileID: 7685703826391962030, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.y - value: 24 - objectReference: {fileID: 0} - - target: {fileID: 7685703826391962030, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 20.46997 - objectReference: {fileID: 0} - - target: {fileID: 7796058479251054262, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Color.b - value: 0.96470594 - objectReference: {fileID: 0} - - target: {fileID: 7796058479251054262, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Color.g - value: 0.96470594 - objectReference: {fileID: 0} - - target: {fileID: 7796058479251054262, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_Color.r - value: 0.96470594 - objectReference: {fileID: 0} - - target: {fileID: 7938831965341739030, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 24 - objectReference: {fileID: 0} - - target: {fileID: 7938831965341739030, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.y - value: 24 - objectReference: {fileID: 0} - - target: {fileID: 7938831965341739030, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 20.46997 - objectReference: {fileID: 0} - - target: {fileID: 8309792886626272780, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8309792886626272780, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMin.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8309792886626272780, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 116 - objectReference: {fileID: 0} - - target: {fileID: 8309792886626272780, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.y - value: 30 - objectReference: {fileID: 0} - - target: {fileID: 8309792886626272780, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 58 - objectReference: {fileID: 0} - - target: {fileID: 8309792886626272780, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -54.1 - objectReference: {fileID: 0} - - target: {fileID: 8489894846506230600, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8489894846506230600, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMin.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8489894846506230600, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 95.91 - objectReference: {fileID: 0} - - target: {fileID: 8489894846506230600, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.y - value: 19.1 - objectReference: {fileID: 0} - - target: {fileID: 8489894846506230600, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 58 - objectReference: {fileID: 0} - - target: {fileID: 8489894846506230600, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -19.55 - objectReference: {fileID: 0} - - target: {fileID: 8610803024673720574, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8610803024673720574, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMin.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8610803024673720574, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 116 - objectReference: {fileID: 0} - - target: {fileID: 8610803024673720574, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.y - value: 30 - objectReference: {fileID: 0} - - target: {fileID: 8610803024673720574, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 58 - objectReference: {fileID: 0} - - target: {fileID: 8610803024673720574, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -45 - objectReference: {fileID: 0} - - target: {fileID: 8740894294886845968, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 24 - objectReference: {fileID: 0} - - target: {fileID: 8740894294886845968, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.y - value: 24 - objectReference: {fileID: 0} - - target: {fileID: 8740894294886845968, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 20 - objectReference: {fileID: 0} - - target: {fileID: 8852725928508961564, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8852725928508961564, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMin.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8852725928508961564, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 116 - objectReference: {fileID: 0} - - target: {fileID: 8852725928508961564, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.y - value: 30 - objectReference: {fileID: 0} - - target: {fileID: 8852725928508961564, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 58 - objectReference: {fileID: 0} - - target: {fileID: 8852725928508961564, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -45 - objectReference: {fileID: 0} - - target: {fileID: 9109606891818156669, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 9109606891818156669, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchorMin.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 9109606891818156669, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_SizeDelta.x - value: 148.26761 - objectReference: {fileID: 0} - - target: {fileID: 9109606891818156669, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 100.133804 - objectReference: {fileID: 0} - - target: {fileID: 9109606891818156669, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -25 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 6f1d207f329734f55af0baa844844bdc, type: 3} ---- !u!114 &1125896304279764410 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 6918429432988714889, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - m_PrefabInstance: {fileID: 8042529880830868019} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &5982296756742802019 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 4366711961484996688, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - m_PrefabInstance: {fileID: 8042529880830868019} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3ca92589a6cb2ca4d84cbafdcced1755, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!224 &7887208196134065619 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 209470434955866080, guid: 6f1d207f329734f55af0baa844844bdc, - type: 3} - m_PrefabInstance: {fileID: 8042529880830868019} - m_PrefabAsset: {fileID: 0} ---- !u!1001 &8805755327092704169 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 1868459647109155936} - m_Modifications: - - target: {fileID: 2270140030997826954, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_fontAsset - value: - objectReference: {fileID: 11400000, guid: a02669827dd9144f39b4b164e753a21a, - type: 2} - - target: {fileID: 2270140030997826954, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_textAlignment - value: 65535 - objectReference: {fileID: 0} - - target: {fileID: 2270140030997826954, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_sharedMaterial - value: - objectReference: {fileID: 2100000, guid: 74b83fa9a54124695b9bdd8bea96fa17, type: 2} - - target: {fileID: 2270140030997826954, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_TextStyleHashCode - value: -1183493901 - objectReference: {fileID: 0} - - target: {fileID: 2270140030997826954, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_VerticalAlignment - value: 512 - objectReference: {fileID: 0} - - target: {fileID: 2270140030997826954, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_textInfo.lineCount - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 2270140030997826954, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_textInfo.pageCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2270140030997826954, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_textInfo.wordCount - value: 10 - objectReference: {fileID: 0} - - target: {fileID: 2270140030997826954, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_HorizontalAlignment - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 2270140030997826954, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_hasFontAssetChanged - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2270140030997826954, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_textInfo.spaceCount - value: 9 - objectReference: {fileID: 0} - - target: {fileID: 2270140030997826954, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_textInfo.characterCount - value: 60 - objectReference: {fileID: 0} - - target: {fileID: 2857938838238982382, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_Name - value: ConfirmationDialog - objectReference: {fileID: 0} - - target: {fileID: 2857938838238982382, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3135184398317923246, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_Sprite - value: - objectReference: {fileID: 21300000, guid: a3a66afb0cf6d49da8b0b2b18f7b20d0, - type: 3} - - target: {fileID: 5769677281417751144, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 5769677281417751144, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 5769677281417751144, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5769677281417751144, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5769677281417751144, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5769677281417751144, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5769677281417751144, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_AnchorMin.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5769677281417751144, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_SizeDelta.x - value: 301.9386 - objectReference: {fileID: 0} - - target: {fileID: 5769677281417751144, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_SizeDelta.y - value: 135 - objectReference: {fileID: 0} - - target: {fileID: 5769677281417751144, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5769677281417751144, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5769677281417751144, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5769677281417751144, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5769677281417751144, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 5769677281417751144, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 5769677281417751144, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 5769677281417751144, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_AnchoredPosition.x - value: 182 - objectReference: {fileID: 0} - - target: {fileID: 5769677281417751144, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -398 - objectReference: {fileID: 0} - - target: {fileID: 5769677281417751144, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5769677281417751144, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5769677281417751144, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7073243995728328354, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_AnchorMax.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 7073243995728328354, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_AnchorMin.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 7073243995728328354, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7234291011433919887, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_Sprite - value: - objectReference: {fileID: 21300000, guid: a3a66afb0cf6d49da8b0b2b18f7b20d0, - type: 3} - - target: {fileID: 7777214711719884347, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_fontAsset - value: - objectReference: {fileID: 11400000, guid: 6b705423dc77d4fceb4122f6d7e571d6, - type: 2} - - target: {fileID: 7777214711719884347, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_fontStyle - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7777214711719884347, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_textAlignment - value: 65535 - objectReference: {fileID: 0} - - target: {fileID: 7777214711719884347, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_sharedMaterial - value: - objectReference: {fileID: 2100000, guid: 9d9df32282a3c40299019c36b2157d37, type: 2} - - target: {fileID: 7777214711719884347, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_TextStyleHashCode - value: -1183493901 - objectReference: {fileID: 0} - - target: {fileID: 7777214711719884347, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_VerticalAlignment - value: 512 - objectReference: {fileID: 0} - - target: {fileID: 7777214711719884347, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_textInfo.lineCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 7777214711719884347, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_textInfo.pageCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 7777214711719884347, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_textInfo.wordCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 7777214711719884347, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_HorizontalAlignment - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 7777214711719884347, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_hasFontAssetChanged - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 7777214711719884347, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_textInfo.characterCount - value: 6 - objectReference: {fileID: 0} - - target: {fileID: 9011784660859750550, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_fontAsset - value: - objectReference: {fileID: 11400000, guid: 6b705423dc77d4fceb4122f6d7e571d6, - type: 2} - - target: {fileID: 9011784660859750550, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_fontStyle - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 9011784660859750550, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_textAlignment - value: 65535 - objectReference: {fileID: 0} - - target: {fileID: 9011784660859750550, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_sharedMaterial - value: - objectReference: {fileID: 2100000, guid: 9d9df32282a3c40299019c36b2157d37, type: 2} - - target: {fileID: 9011784660859750550, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_TextStyleHashCode - value: -1183493901 - objectReference: {fileID: 0} - - target: {fileID: 9011784660859750550, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_VerticalAlignment - value: 512 - objectReference: {fileID: 0} - - target: {fileID: 9011784660859750550, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_textInfo.lineCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 9011784660859750550, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_textInfo.pageCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 9011784660859750550, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_textInfo.wordCount - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 9011784660859750550, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_HorizontalAlignment - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 9011784660859750550, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_hasFontAssetChanged - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 9011784660859750550, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - propertyPath: m_textInfo.characterCount - value: 3 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: e8e31cd13af984fa496a37d39835e770, type: 3} ---- !u!224 &3037204315536533953 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 5769677281417751144, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - m_PrefabInstance: {fileID: 8805755327092704169} - m_PrefabAsset: {fileID: 0} ---- !u!114 &5673285788275393845 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 3787488310280062620, guid: e8e31cd13af984fa496a37d39835e770, - type: 3} - m_PrefabInstance: {fileID: 8805755327092704169} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 73112840c2e3fca449db5d08ff7d045e, type: 3} - m_Name: - m_EditorClassIdentifier: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Resources/UsersAroundListHUD.prefab.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Resources/UsersAroundListHUD.prefab.meta deleted file mode 100644 index ae234be2e8..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Resources/UsersAroundListHUD.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 8a623e617fbc74bacb72bdbf317648b6 -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Tests.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Tests.meta deleted file mode 100644 index 10e69101d0..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Tests.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 31daa8f710c3e42ceb4def5da91b058f -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Tests/UsersAroundListHUDShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Tests/UsersAroundListHUDShould.cs deleted file mode 100644 index f3743b048b..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Tests/UsersAroundListHUDShould.cs +++ /dev/null @@ -1,95 +0,0 @@ -using NUnit.Framework; -using System.Collections; -using DCL; -using UnityEngine; -using UnityEngine.TestTools; -using SocialFeaturesAnalytics; -using NSubstitute; - -public class UsersAroundListHUDShould : IntegrationTestSuite_Legacy -{ - private UsersAroundListHUDController controller; - private BaseDictionary otherPlayers => DataStore.i.player.otherPlayers; - - protected override IEnumerator SetUp() - { - yield return base.SetUp(); - controller = new UsersAroundListHUDController(Substitute.For()); - } - - protected override IEnumerator TearDown() - { - DataStore.Clear(); - controller.Dispose(); - yield return base.TearDown(); - } - - [UnityTest] - public IEnumerator CreateView() - { - Assert.NotNull(controller.usersListView); - yield break; - } - - [UnityTest] - public IEnumerator HideAndShowWithUI() - { - CanvasGroup canvasGroup = (controller.usersListView as UsersAroundListHUDListView).GetComponent(); - Assert.NotNull(canvasGroup, "CanvasGroup is null"); - - CommonScriptableObjects.allUIHidden.Set(true); - Assert.IsTrue(canvasGroup.alpha == 0, "CanvasGroup alpha != 0, should be hidden"); - Assert.IsFalse(canvasGroup.interactable, "CanvasGroup is interactable, should be hidden"); - - CommonScriptableObjects.allUIHidden.Set(false); - Assert.IsTrue(canvasGroup.alpha == 1, "CanvasGroup alpha != 1, should be visible"); - Assert.IsTrue(canvasGroup.interactable, "CanvasGroup is not interactable, should be visible"); - yield break; - } - - [UnityTest] - public IEnumerator AddAndRemovePlayersCorrectly() - { - UsersAroundListHUDListView listView = controller.usersListView as UsersAroundListHUDListView; - - string[] users = new string[] { "user1", "user2", "user3" }; - - UserProfileController.i.AddUserProfileToCatalog(new UserProfileModel() - { - name = users[0], - userId = users[0] - }); - UserProfileController.i.AddUserProfileToCatalog(new UserProfileModel() - { - userId = users[1], - name = users[1] - }); - UserProfileController.i.AddUserProfileToCatalog(new UserProfileModel() - { - name = users[2], - userId = users[2] - }); - - otherPlayers.Add(users[0], new Player { id = users[0], name = users[0], worldPosition = Vector3.zero, playerName = GameObject.Instantiate(Resources.Load("PlayerName")).GetComponent() }); - otherPlayers.Add(users[1], new Player { id = users[1], name = users[1], worldPosition = Vector3.zero, playerName = GameObject.Instantiate(Resources.Load("PlayerName")).GetComponent() }); - - Assert.IsTrue(GetVisibleChildren(listView.contentPlayers) == 2, "listView.content.childCount != 2"); - Assert.IsTrue(listView.availableElements.Count == 0, "listView.availableElements.Count != 0"); - - otherPlayers.Remove(users[1]); - Assert.IsTrue(GetVisibleChildren(listView.contentPlayers) == 1, "listView.content.childCount != 1"); - Assert.IsTrue(listView.availableElements.Count == 1, "listView.availableElements.Count != 1"); - - otherPlayers.Remove(users[0]); - Assert.IsTrue(GetVisibleChildren(listView.contentPlayers) == 0, "listView.content.childCount != 0"); - Assert.IsTrue(listView.availableElements.Count == 2, "listView.availableElements.Count != 2"); - - otherPlayers.Add(users[2], new Player { id = users[2], name = users[2], worldPosition = Vector3.zero, playerName = GameObject.Instantiate(Resources.Load("PlayerName")).GetComponent() }); - Assert.IsTrue(GetVisibleChildren(listView.contentPlayers) == 1, "listView.content.childCount != 1"); - Assert.IsTrue(listView.availableElements.Count == 1, "listView.availableElements.Count != 1"); - - yield break; - } - - int GetVisibleChildren(Transform parent) { return parent.GetComponentsInChildren(false).Length; } -} \ No newline at end of file diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Tests/UsersAroundListHUDShould.cs.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Tests/UsersAroundListHUDShould.cs.meta deleted file mode 100644 index ba027e89a6..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Tests/UsersAroundListHUDShould.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 538dd342a8eb249919fe88f1da5ddef5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Tests/UsersAroundListHUDTests.asmdef b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Tests/UsersAroundListHUDTests.asmdef deleted file mode 100644 index a4d49e5653..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Tests/UsersAroundListHUDTests.asmdef +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "UsersAroundListHUDTests", - "rootNamespace": "", - "references": [ - "GUID:52ddb9884483c41508984fbf25c4ef5c", - "GUID:ef84d7ce90ba34f07be26ace428e9bc8", - "GUID:27619889b8ba8c24980f49ee34dbb44a", - "GUID:0acc523941302664db1f4e527237feb3", - "GUID:4720e174f2805c74bb7aa94cc8bb5bf8", - "GUID:0e967802b778d404eac1ca5ea340e290", - "GUID:1de3566cccb280f4a982c59ad0d08c96", - "GUID:28f74c468a54948bfa9f625c5d428f56", - "GUID:c34e38f41494f834abff029ddf82af43", - "GUID:1e6b57fe78f7b724e9567f29f6a40c2c", - "GUID:55b66aa56b81d2d4cafb4a5f02bc90ca", - "GUID:e620e543132e94e4fb43a2bd6f324cbf", - "GUID:896ac1ef7dceedf49b9a9b0f3c8e798d" - ], - "includePlatforms": [], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": true, - "precompiledReferences": [ - "nunit.framework.dll", - "NSubstitute.dll" - ], - "autoReferenced": false, - "defineConstraints": [ - "UNITY_INCLUDE_TESTS" - ], - "versionDefines": [], - "noEngineReferences": false -} \ No newline at end of file diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Tests/UsersAroundListHUDTests.asmdef.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Tests/UsersAroundListHUDTests.asmdef.meta deleted file mode 100644 index 5c481390c5..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/Tests/UsersAroundListHUDTests.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: e6de480fd59084eefbc62cebe770d3e3 -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUD.asmdef b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUD.asmdef deleted file mode 100644 index 382ae18b2a..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUD.asmdef +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "UsersAroundListHUD", - "rootNamespace": "", - "references": [ - "GUID:555c1f3c6d18648df910b7a1de75b424", - "GUID:0e967802b778d404eac1ca5ea340e290", - "GUID:6055be8ebefd69e48b49212b09b47b2f", - "GUID:1de3566cccb280f4a982c59ad0d08c96", - "GUID:82873c2d9c9cbe94391e6b33e5153865", - "GUID:4720e174f2805c74bb7aa94cc8bb5bf8", - "GUID:b1087c5731ff68448a0a9c625bb7e52d", - "GUID:4973650d2444c4561a15d50f24d91cd9", - "GUID:3f4c1b4f55716479ea104c4254afe172", - "GUID:ba9b721ce33233c4da7ff4ef30d25b59", - "GUID:760a1d365aad58044916992b072cf2a6", - "GUID:8bf30e5f113c544d88fc302761d180c0", - "GUID:bb3eef89092f71f44aa2449a9cf7879c", - "GUID:301149363e31a4bdaa1943465a825c8e", - "GUID:f71b8c619c7cf404ebe3a1fa4c7742fd", - "GUID:d7f1765642f0c22cda30addd0275b5e1", - "GUID:28f74c468a54948bfa9f625c5d428f56", - "GUID:c34e38f41494f834abff029ddf82af43", - "GUID:82a93299762ed164a99e475bc89d323c", - "GUID:1e6b57fe78f7b724e9567f29f6a40c2c", - "GUID:55b66aa56b81d2d4cafb4a5f02bc90ca", - "GUID:fbcc413e192ef9048811d47ab0aca0c0", - "GUID:3b80b0b562b1cbc489513f09fc1b8f69", - "GUID:97d8897529779cb49bebd400c7f402a6" - ], - "includePlatforms": [], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [], - "versionDefines": [], - "noEngineReferences": false -} \ No newline at end of file diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUD.asmdef.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUD.asmdef.meta deleted file mode 100644 index 8fbcdd990f..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUD.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 52ddb9884483c41508984fbf25c4ef5c -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDButtonView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDButtonView.cs deleted file mode 100644 index 920de48e48..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDButtonView.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using TMPro; -using UnityEngine; -using UnityEngine.EventSystems; - -public class UsersAroundListHUDButtonView : MonoBehaviour, IUsersAroundListHUDButtonView, IPointerDownHandler -{ - [SerializeField] private TextMeshProUGUI usersCountText; - - public void SetUsersCount(int count) { usersCountText.text = count.ToString(); } - - public event Action OnClick; - public void ToggleUsersCount(bool isEnabled) - { - usersCountText.gameObject.SetActive(isEnabled); - } - - void IPointerDownHandler.OnPointerDown(PointerEventData eventData) { OnClick?.Invoke(); } -} \ No newline at end of file diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDButtonView.cs.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDButtonView.cs.meta deleted file mode 100644 index 7162fd87f4..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDButtonView.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 36743ea7b90aa46ada92236f3eb32603 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDController.cs deleted file mode 100644 index 5b2f0a58ee..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDController.cs +++ /dev/null @@ -1,261 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using DCL; -using DCL.Interface; -using SocialFeaturesAnalytics; -using UnityEngine; - -public class UsersAroundListHUDController : IHUD -{ - const float MUTE_STATUS_UPDATE_INTERVAL = 0.3f; - - internal IUsersAroundListHUDButtonView usersButtonView; - internal IUsersAroundListHUDListView usersListView; - internal ISocialAnalytics socialAnalytics; - - private bool isVisible = false; - private readonly HashSet trackedUsersHashSet = new HashSet(); - private UserProfile profile => UserProfile.GetOwnUserProfile(); - - private readonly List usersToMute = new List(); - private readonly List usersToUnmute = new List(); - private bool isMuteAll = false; - private Coroutine updateMuteStatusRoutine = null; - - private BaseDictionary otherPlayers => DataStore.i.player.otherPlayers; - - public event System.Action OnOpen; - - public UsersAroundListHUDController(ISocialAnalytics socialAnalytics) - { - UsersAroundListHUDListView view = Object.Instantiate(Resources.Load("UsersAroundListHUD")).GetComponent(); - view.name = "_UsersAroundListHUD"; - view.gameObject.SetActive(false); - Initialize(view, socialAnalytics); - } - - public UsersAroundListHUDController(IUsersAroundListHUDListView usersListView, ISocialAnalytics socialAnalytics) { Initialize(usersListView, socialAnalytics); } - - /// - /// Dispose HUD controller - /// - public void Dispose() - { - ReportMuteStatuses(); - - if (updateMuteStatusRoutine != null) - { - CoroutineStarter.Stop(updateMuteStatusRoutine); - } - - otherPlayers.OnAdded -= OnOtherPlayersStatusAdded; - otherPlayers.OnRemoved -= OnOtherPlayerStatusRemoved; - - CommonScriptableObjects.rendererState.OnChange -= OnRendererStateChanged; - profile.OnUpdate -= OnUserProfileUpdate; - - if (usersListView != null) - { - usersListView.OnRequestMuteUser -= OnMuteUser; - usersListView.OnRequestMuteGlobal -= OnMuteAll; - usersListView.OnGoToCrowdPressed -= OnGoToCrowd; - usersListView.OnOpen -= OnListOpen; - - usersListView.Dispose(); - } - - if (usersButtonView != null) - { - usersButtonView.OnClick -= ToggleVisibility; - } - } - - /// - /// Set HUD's visibility - /// - /// - public void SetVisibility(bool visible) - { - isVisible = visible; - usersListView.SetVisibility(visible); - } - - /// - /// Set button to toggle HUD visibility and display users count - /// - /// Button view - public void SetButtonView(IUsersAroundListHUDButtonView view) - { - usersButtonView = view; - usersButtonView.OnClick += ToggleVisibility; - } - - /// - /// Set mute status for users' id - /// - /// Array of user ids - /// Set if users should be mute or unmute - public void SetUsersMuted(string[] usersId, bool isMuted) - { - for (int i = 0; i < usersId.Length; i++) - { - usersListView.SetUserMuted(usersId[i], isMuted); - } - } - - /// - /// Set user status as "talking" - /// - /// User's id - /// Set user status as "talking" or "not talking" - public void SetUserRecording(string userId, bool isRecording) { usersListView.SetUserRecording(userId, isRecording); } - - void Initialize(IUsersAroundListHUDListView view, ISocialAnalytics socialAnalytics) - { - usersListView = view; - this.socialAnalytics = socialAnalytics; - - usersListView.OnRequestMuteUser += OnMuteUser; - usersListView.OnRequestMuteGlobal += OnMuteAll; - usersListView.OnGoToCrowdPressed += OnGoToCrowd; - usersListView.OnOpen += OnListOpen; - - otherPlayers.OnAdded += OnOtherPlayersStatusAdded; - otherPlayers.OnRemoved += OnOtherPlayerStatusRemoved; - - CommonScriptableObjects.rendererState.OnChange += OnRendererStateChanged; - profile.OnUpdate += OnUserProfileUpdate; - } - - void OnOtherPlayersStatusAdded(string userId, Player player) - { - usersListView.AddOrUpdatePlayer(player); - - if (!trackedUsersHashSet.Contains(userId)) - { - trackedUsersHashSet.Add(userId); - - bool isMuted = profile.muted.Contains(userId); - bool isBlocked = profile.blocked != null ? profile.blocked.Contains(userId) : false; - - usersListView.SetUserMuted(userId, isMuted); - usersListView.SetUserBlocked(userId, isBlocked); - - if (isMuteAll && !isMuted) - { - OnMuteUser(userId, true); - } - } - - usersButtonView?.SetUsersCount(trackedUsersHashSet.Count); - } - - void OnOtherPlayerStatusRemoved(string userId, Player player) - { - if (trackedUsersHashSet.Contains(userId)) - { - trackedUsersHashSet.Remove(userId); - usersButtonView?.SetUsersCount(trackedUsersHashSet.Count); - } - usersListView.RemoveUser(userId); - } - - void ToggleVisibility() - { - bool setVisible = !isVisible; - SetVisibility(setVisible); - } - - void OnMuteUser(string userId, bool mute) - { - var list = mute ? usersToMute : usersToUnmute; - list.Add(userId); - - if (updateMuteStatusRoutine == null) - { - updateMuteStatusRoutine = CoroutineStarter.Start(MuteStateUpdateRoutine()); - } - - if (mute) - socialAnalytics.SendPlayerMuted(userId); - else - socialAnalytics.SendPlayerUnmuted(userId); - } - - void OnMuteUsers(IEnumerable usersId, bool mute) - { - using (var iterator = usersId.GetEnumerator()) - { - while (iterator.MoveNext()) - { - OnMuteUser(iterator.Current, mute); - } - } - } - - void OnMuteAll(bool mute) - { - isMuteAll = mute; - - if (mute) - { - usersToUnmute.Clear(); - } - else - { - usersToMute.Clear(); - } - OnMuteUsers(trackedUsersHashSet, mute); - } - - void OnGoToCrowd() - { - DCL.Environment.i.world.teleportController.GoToCrowd(); - } - - void OnListOpen() { OnOpen?.Invoke(); } - - private void OnRendererStateChanged(bool isEnable, bool prevState) - { - if (isEnable || !isVisible) - return; - - SetVisibility(false); - } - - private void OnUserProfileUpdate(UserProfile profile) - { - using (var iterator = trackedUsersHashSet.GetEnumerator()) - { - while (iterator.MoveNext()) - { - usersListView.SetUserBlocked(iterator.Current, profile.blocked != null ? profile.blocked.Contains(iterator.Current) : false); - } - } - } - - void ReportMuteStatuses() - { - if (usersToUnmute.Count > 0) - { - WebInterface.SetMuteUsers(usersToUnmute.ToArray(), false); - } - if (usersToMute.Count > 0) - { - WebInterface.SetMuteUsers(usersToMute.ToArray(), true); - } - usersToUnmute.Clear(); - usersToMute.Clear(); - } - - IEnumerator MuteStateUpdateRoutine() - { - yield return WaitForSecondsCache.Get(MUTE_STATUS_UPDATE_INTERVAL); - ReportMuteStatuses(); - updateMuteStatusRoutine = null; - } - public void ToggleUsersCount(bool isEnabled) - { - usersButtonView.ToggleUsersCount(isEnabled); - } -} \ No newline at end of file diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDController.cs.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDController.cs.meta deleted file mode 100644 index bb53fbfa07..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 208db0e96ce0a4c609e3f911fcc31e83 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDListElementView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDListElementView.cs deleted file mode 100644 index 276149d3f9..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDListElementView.cs +++ /dev/null @@ -1,185 +0,0 @@ -using System; -using System.Collections; -using DCL; -using DCL.Components; -using DCL.Social.Friends; -using TMPro; -using UnityEngine; -using UnityEngine.UI; -using UnityEngine.EventSystems; -using Environment = DCL.Environment; - -internal class UsersAroundListHUDListElementView : MonoBehaviour, IPoolLifecycleHandler, IPointerEnterHandler, IPointerExitHandler -{ - private static readonly int talkingAnimation = Animator.StringToHash("Talking"); - - public event Action OnMuteUser; - public event Action OnShowUserContexMenu; - - [SerializeField] internal TextMeshProUGUI userName; - [SerializeField] internal GameObject friendLabel; - [SerializeField] internal RawImage avatarPreview; - [SerializeField] internal GameObject blockedGO; - [SerializeField] internal Button soundButton; - [SerializeField] internal GameObject muteGO; - [SerializeField] internal GameObject backgroundHover; - [SerializeField] internal Button menuButton; - [SerializeField] internal Transform contexMenuRefPosition; - [SerializeField] internal Animator talkingAnimator; - - private UserProfile profile; - private bool isMuted = false; - private bool isRecording = false; - - private void Start() - { - soundButton.onClick.AddListener(OnSoundButtonPressed); - menuButton.onClick.AddListener(() => - { - if (profile) - { - OnShowUserContexMenu?.Invoke(contexMenuRefPosition.position, profile.userId); - } - }); - } - - private void OnEnable() - { - if ( profile != null ) - profile.snapshotObserver.AddListener(SetAvatarSnapshotImage); - - if ( talkingAnimator.isActiveAndEnabled ) - talkingAnimator.SetBool(talkingAnimation, isRecording); - } - - private void OnDisable() - { - if ( profile != null ) - profile.snapshotObserver.RemoveListener(SetAvatarSnapshotImage); - } - - private void OnDestroy() - { - if ( profile != null ) - profile.snapshotObserver.RemoveListener(SetAvatarSnapshotImage); - } - - public void SetUserProfile(UserProfile profile) - { - userName.text = profile.userName; - - SetupFriends(profile.userId); - - if (this.profile != null && isActiveAndEnabled) - { - this.profile.snapshotObserver.RemoveListener(SetAvatarSnapshotImage); - profile.snapshotObserver.AddListener(SetAvatarSnapshotImage); - } - - this.profile = profile; - } - - public void SetMuted(bool isMuted) - { - this.isMuted = isMuted; - muteGO.SetActive(isMuted); - } - - public void SetRecording(bool isRecording) - { - this.isRecording = isRecording; - - if ( talkingAnimator.isActiveAndEnabled ) - talkingAnimator.SetBool(talkingAnimation, isRecording); - } - - public void SetBlocked(bool blocked) { blockedGO.SetActive(blocked); } - - public void OnPoolRelease() - { - avatarPreview.texture = null; - userName.text = string.Empty; - isMuted = false; - isRecording = false; - - if (profile != null) - { - profile.snapshotObserver?.RemoveListener(SetAvatarSnapshotImage); - profile = null; - } - - if (Environment.i.serviceLocator.Get() != null) - { - Environment.i.serviceLocator.Get().OnUpdateFriendship -= OnFriendActionUpdate; - } - - gameObject.SetActive(false); - } - - public void OnPoolGet() - { - muteGO.SetActive(false); - - if (talkingAnimator.isActiveAndEnabled) - talkingAnimator.SetBool(talkingAnimation, false); - - avatarPreview.texture = null; - userName.text = string.Empty; - backgroundHover.SetActive(false); - menuButton.gameObject.SetActive(false); - blockedGO.SetActive(false); - gameObject.SetActive(true); - } - - void SetupFriends(string userId) - { - var friendsController = Environment.i.serviceLocator.Get(); - if (friendsController == null) - { - return; - } - - - UserStatus status = friendsController.GetUserStatus(userId); - SetupFriendship(status?.friendshipStatus ?? FriendshipStatus.NOT_FRIEND); - - friendsController.OnUpdateFriendship -= OnFriendActionUpdate; - friendsController.OnUpdateFriendship += OnFriendActionUpdate; - } - - void SetAvatarSnapshotImage(Texture2D texture) { avatarPreview.texture = texture; } - - void OnSoundButtonPressed() - { - if (profile == null) - { - return; - } - - OnMuteUser?.Invoke(profile.userId, !isMuted); - } - - void IPointerEnterHandler.OnPointerEnter(PointerEventData eventData) - { - backgroundHover.SetActive(true); - menuButton.gameObject.SetActive(true); - } - - void IPointerExitHandler.OnPointerExit(PointerEventData eventData) - { - backgroundHover.SetActive(false); - menuButton.gameObject.SetActive(false); - } - - void OnFriendActionUpdate(string userId, FriendshipAction action) - { - if (profile.userId != userId) - { - return; - } - - friendLabel.SetActive(action == FriendshipAction.APPROVED); - } - - void SetupFriendship(FriendshipStatus friendshipStatus) { friendLabel.SetActive(friendshipStatus == FriendshipStatus.FRIEND); } -} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDListElementView.cs.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDListElementView.cs.meta deleted file mode 100644 index 9e1939aa7c..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDListElementView.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2625b1f0cebe145849ec1e325b609497 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDListView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDListView.cs deleted file mode 100644 index bbd564f17a..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDListView.cs +++ /dev/null @@ -1,196 +0,0 @@ -using System; -using System.Collections.Generic; -using DCL.SettingsCommon; -using UnityEngine; -using UnityEngine.UI; - -internal class UsersAroundListHUDListView : MonoBehaviour, IUsersAroundListHUDListView -{ - public event Action OnRequestMuteUser; - public event Action OnRequestMuteGlobal; - public event Action OnGoToCrowdPressed; - public event Action OnOpen; - - [SerializeField] private UsersAroundListHUDListElementView listElementView; - [SerializeField] private ShowHideAnimator showHideAnimator; - [SerializeField] internal TMPro.TextMeshProUGUI textPlayersTitle; - [SerializeField] internal Transform contentPlayers; - [SerializeField] internal Toggle muteAllToggle; - [SerializeField] internal UserContextMenu contextMenu; - [SerializeField] internal UserContextConfirmationDialog confirmationDialog; - [SerializeField] internal GameObject emptyListGameObject; - [SerializeField] internal Button gotoCrowdButton; - [SerializeField] internal SpinBoxPresetted voiceChatSpinBox; - - internal Queue availableElements; - internal Dictionary userElementDictionary; - - private string playersTextPattern; - private bool isGameObjectDestroyed = false; - - private void Awake() - { - availableElements = new Queue(); - userElementDictionary = new Dictionary(); - - playersTextPattern = textPlayersTitle.text; - textPlayersTitle.text = string.Format(playersTextPattern, userElementDictionary?.Count ?? 0); - - muteAllToggle.onValueChanged.AddListener(OnMuteGlobal); - gotoCrowdButton.onClick.AddListener(() => OnGoToCrowdPressed?.Invoke()); - voiceChatSpinBox.onValueChanged.AddListener(OnVoiceChatSettingChanged); - - listElementView.OnMuteUser += OnMuteUser; - listElementView.OnShowUserContexMenu += OnUserContextMenu; - listElementView.OnPoolRelease(); - availableElements.Enqueue(listElementView); - - Settings.i.generalSettings.OnChanged += OnSettingsChanged; - } - - void OnDestroy() - { - isGameObjectDestroyed = true; - Settings.i.generalSettings.OnChanged -= OnSettingsChanged; - } - - void IUsersAroundListHUDListView.AddOrUpdatePlayer(Player player) - { - if (userElementDictionary.ContainsKey(player.id)) - { - return; - } - - var profile = UserProfileController.userProfilesCatalog.Get(player.id); - - if (profile == null) - return; - - UsersAroundListHUDListElementView view = null; - if (availableElements.Count > 0) - { - view = availableElements.Dequeue(); - } - else - { - view = Instantiate(listElementView, contentPlayers); - view.OnMuteUser += OnMuteUser; - view.OnShowUserContexMenu += OnUserContextMenu; - } - - view.OnPoolGet(); - view.SetUserProfile(profile); - userElementDictionary.Add(player.id, view); - OnModifyListCount(); - CheckListEmptyState(); - } - - void IUsersAroundListHUDListView.RemoveUser(string userId) - { - if (!userElementDictionary.TryGetValue(userId, out UsersAroundListHUDListElementView elementView)) - { - return; - } - if (!elementView) - { - return; - } - - PoolElementView(elementView); - userElementDictionary.Remove(userId); - OnModifyListCount(); - CheckListEmptyState(); - } - - void IUsersAroundListHUDListView.SetUserRecording(string userId, bool isRecording) - { - if (!userElementDictionary.TryGetValue(userId, out UsersAroundListHUDListElementView elementView)) - { - return; - } - elementView.SetRecording(isRecording); - } - - void IUsersAroundListHUDListView.SetUserMuted(string userId, bool isMuted) - { - if (!userElementDictionary.TryGetValue(userId, out UsersAroundListHUDListElementView elementView)) - { - return; - } - elementView.SetMuted(isMuted); - } - - void IUsersAroundListHUDListView.SetUserBlocked(string userId, bool blocked) - { - if (!userElementDictionary.TryGetValue(userId, out UsersAroundListHUDListElementView elementView)) - { - return; - } - elementView.SetBlocked(blocked); - } - - void IUsersAroundListHUDListView.SetVisibility(bool visible) - { - if (visible) - { - if (!gameObject.activeSelf) - { - gameObject.SetActive(true); - } - - showHideAnimator.Show(); - CheckListEmptyState(); - OnOpen?.Invoke(); - } - else - { - showHideAnimator.Hide(); - contextMenu.Hide(); - confirmationDialog.Hide(); - } - } - - void IUsersAroundListHUDListView.Dispose() - { - userElementDictionary.Clear(); - availableElements.Clear(); - - if (!isGameObjectDestroyed) - { - Destroy(gameObject); - } - } - - void OnMuteUser(string userId, bool mute) { OnRequestMuteUser?.Invoke(userId, mute); } - - void OnMuteGlobal(bool mute) { OnRequestMuteGlobal?.Invoke(mute); } - - void OnUserContextMenu(Vector3 position, string userId) - { - contextMenu.transform.position = position; - contextMenu.Show(userId); - } - - void PoolElementView(UsersAroundListHUDListElementView element) - { - element.OnPoolRelease(); - availableElements.Enqueue(element); - } - - void OnModifyListCount() { textPlayersTitle.text = string.Format(playersTextPattern, userElementDictionary.Count); } - - void CheckListEmptyState() - { - bool isEmpty = userElementDictionary.Count == 0; - emptyListGameObject.SetActive(isEmpty); - } - - void OnVoiceChatSettingChanged(int index) - { - var newSettings = Settings.i.generalSettings.Data; - newSettings.voiceChatAllow = (GeneralSettings.VoiceChatAllow)index; - Settings.i.generalSettings.Apply(newSettings); - } - - void OnSettingsChanged(GeneralSettings settings) { voiceChatSpinBox.SetValue((int)settings.voiceChatAllow, false); } -} \ No newline at end of file diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDListView.cs.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDListView.cs.meta deleted file mode 100644 index 75758dc870..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/UsersAroundListHUD/UsersAroundListHUDListView.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ade75a8604eeb4738895fd32d003b48e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/NearbyMembersHUDController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/NearbyMembersHUDController.cs index f20f0d04dd..8ebd62378d 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/NearbyMembersHUDController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/NearbyMembersHUDController.cs @@ -1,5 +1,4 @@ -using DCL.Social.Chat; -using System; +using System; namespace DCL.Social.Chat { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Prefabs/Resources/UserContextMenuPanel.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Prefabs/Resources/UserContextMenuPanel.prefab deleted file mode 100644 index 22222b2f9c..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Prefabs/Resources/UserContextMenuPanel.prefab +++ /dev/null @@ -1,3323 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &33180226908608850 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 9109606891818156669} - - component: {fileID: 2420392886171112744} - - component: {fileID: 3877043805001231458} - - component: {fileID: 112276539412484646} - - component: {fileID: 3852568370623345013} - m_Layer: 19 - m_Name: MessageButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &9109606891818156669 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 33180226908608850} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 3212861919107043162} - - {fileID: 8740894294886845968} - m_Father: {fileID: 1697453541807700629} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 144.30188, y: 30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2420392886171112744 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 33180226908608850} - m_CullTransparentMesh: 0 ---- !u!114 &3877043805001231458 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 33180226908608850} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.96470594, g: 0.96470594, b: 0.96470594, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: a3a66afb0cf6d49da8b0b2b18f7b20d0, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!114 &112276539412484646 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 33180226908608850} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 3877043805001231458} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &3852568370623345013 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 33180226908608850} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4bfd0d144b6d3dd438b84fa14a062c4f, type: 3} - m_Name: - m_EditorClassIdentifier: - playHover: 1 - playClick: 1 - playRelease: 1 - extraClickEvent: {fileID: 0} ---- !u!1 &216683297733264312 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7621011522272249960} - - component: {fileID: 809631198532815509} - - component: {fileID: 6918429432988714889} - - component: {fileID: 2064993301199220373} - - component: {fileID: 893839971083573949} - m_Layer: 20 - m_Name: Add friend - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7621011522272249960 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 216683297733264312} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1.2, y: 1.2, z: 1.2} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 167966206939799589} - m_Father: {fileID: 8309792886626272780} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 81.64395, y: 30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &809631198532815509 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 216683297733264312} - m_CullTransparentMesh: 0 ---- !u!114 &6918429432988714889 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 216683297733264312} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 0.1764706, b: 0.33333334, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 0829529b4cd624727a16edcc165c4a97, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!114 &2064993301199220373 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 216683297733264312} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 6918429432988714889} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &893839971083573949 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 216683297733264312} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4bfd0d144b6d3dd438b84fa14a062c4f, type: 3} - m_Name: - m_EditorClassIdentifier: - playHover: 1 - playClick: 1 - playRelease: 1 - extraClickEvent: {fileID: 0} ---- !u!1 &281727170586844358 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6506555174203901896} - - component: {fileID: 7593514545137235321} - - component: {fileID: 2742644055237271090} - m_Layer: 19 - m_Name: Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6506555174203901896 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 281727170586844358} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 6314613212027488367} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 18.730091, y: 0} - m_SizeDelta: {x: 25, y: 25} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &7593514545137235321 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 281727170586844358} - m_CullTransparentMesh: 0 ---- !u!114 &2742644055237271090 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 281727170586844358} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 4fec551e960ee4ccca8b3390ea2d3071, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &398520532677999972 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3212861919107043162} - - component: {fileID: 2548805696135669716} - - component: {fileID: 6351885843204886852} - m_Layer: 19 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3212861919107043162 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 398520532677999972} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 9109606891818156669} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 85.43, y: 0} - m_SizeDelta: {x: 92.45282, y: 14} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2548805696135669716 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 398520532677999972} - m_CullTransparentMesh: 0 ---- !u!114 &6351885843204886852 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 398520532677999972} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Message - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: c0f2e4affe3f2438d9042ca1db45764f, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: 70f3d6b07a517476dbd2b89cf148f858, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4278190080 - m_fontColor: {r: 0, g: 0, b: 0, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 15 - m_fontSizeBase: 15 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_TextWrappingMode: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_EmojiFallbackSupport: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &1105000171723373194 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7121501207148520764} - - component: {fileID: 384057329359727476} - - component: {fileID: 448103021969107721} - m_Layer: 19 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7121501207148520764 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1105000171723373194} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1559391499053547033} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 85.43, y: 0} - m_SizeDelta: {x: 92.45282, y: 14} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &384057329359727476 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1105000171723373194} - m_CullTransparentMesh: 0 ---- !u!114 &448103021969107721 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1105000171723373194} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Passport - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: c0f2e4affe3f2438d9042ca1db45764f, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: 70f3d6b07a517476dbd2b89cf148f858, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4278190080 - m_fontColor: {r: 0, g: 0, b: 0, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 15 - m_fontSizeBase: 15 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_TextWrappingMode: 0 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_EmojiFallbackSupport: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &1216095448737313681 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8740894294886845968} - - component: {fileID: 6487987157663542618} - - component: {fileID: 8729964172850633107} - m_Layer: 19 - m_Name: Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8740894294886845968 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1216095448737313681} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 9109606891818156669} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 19.730091, y: 0} - m_SizeDelta: {x: 25, y: 25} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6487987157663542618 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1216095448737313681} - m_CullTransparentMesh: 0 ---- !u!114 &8729964172850633107 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1216095448737313681} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 247c07994d33848d5be25ccac8f0538d, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &1490309298431368879 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 167966206939799589} - - component: {fileID: 8288527659726776532} - - component: {fileID: 5914279265284641863} - m_Layer: 20 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &167966206939799589 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1490309298431368879} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 7621011522272249960} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 1} - m_SizeDelta: {x: 0, y: -2} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8288527659726776532 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1490309298431368879} - m_CullTransparentMesh: 0 ---- !u!114 &5914279265284641863 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1490309298431368879} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Add friend - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 26b03903800224f718b64e9afbc91b61, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: cbef7abfd5b4443bf9d5c298a464b5a6, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: 0 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 11 - m_fontSizeBase: 11 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 10 - m_fontSizeMax: 12 - m_fontStyle: 16 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 514 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_TextWrappingMode: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 3 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_EmojiFallbackSupport: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &2509732966232078900 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6208790594406829408} - - component: {fileID: 5829410902848862057} - - component: {fileID: 2217008982340167443} - - component: {fileID: 7734036857211891558} - m_Layer: 19 - m_Name: Header - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6208790594406829408 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2509732966232078900} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 5754077150649480954} - - {fileID: 8489894846506230600} - - {fileID: 8309792886626272780} - m_Father: {fileID: 209470434955866080} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &5829410902848862057 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2509732966232078900} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 4 - m_Bottom: 8 - m_ChildAlignment: 1 - m_Spacing: 8 - m_ChildForceExpandWidth: 0 - m_ChildForceExpandHeight: 0 - m_ChildControlWidth: 1 - m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!222 &2217008982340167443 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2509732966232078900} - m_CullTransparentMesh: 0 ---- !u!114 &7734036857211891558 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2509732966232078900} - m_Enabled: 0 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 5c569e851fe024c7e8e4b57c07575226, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!1 &2765004884216864864 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7938831965341739030} - - component: {fileID: 8492648365145640495} - - component: {fileID: 5981975616570273322} - m_Layer: 19 - m_Name: Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7938831965341739030 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2765004884216864864} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3815080001497336462} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20.2001, y: 0} - m_SizeDelta: {x: 25, y: 25} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8492648365145640495 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2765004884216864864} - m_CullTransparentMesh: 0 ---- !u!114 &5981975616570273322 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2765004884216864864} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 518e3be6157b64d5a9fabd3e9c35622d, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &2925717574549486877 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1697453541807700629} - - component: {fileID: 1982332754799701023} - m_Layer: 19 - m_Name: Body - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1697453541807700629 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2925717574549486877} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 9109606891818156669} - - {fileID: 1559391499053547033} - - {fileID: 3815080001497336462} - - {fileID: 5191761706286609472} - - {fileID: 6314613212027488367} - m_Father: {fileID: 209470434955866080} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 0} ---- !u!114 &1982332754799701023 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2925717574549486877} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 26 - m_Right: 26 - m_Top: 6 - m_Bottom: 17 - m_ChildAlignment: 0 - m_Spacing: 8 - m_ChildForceExpandWidth: 0 - m_ChildForceExpandHeight: 0 - m_ChildControlWidth: 0 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!1 &2954293574582867020 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 209470434955866080} - - component: {fileID: 4366711961484996688} - - component: {fileID: 1477505211059433124} - - component: {fileID: 4875217099626589154} - - component: {fileID: 8296615900673610729} - - component: {fileID: 3830721978215548402} - m_Layer: 19 - m_Name: UserContextMenuPanel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &209470434955866080 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2954293574582867020} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 6208790594406829408} - - {fileID: 1697453541807700629} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -373.09, y: -152.34} - m_SizeDelta: {x: 168, y: 0} - m_Pivot: {x: 0.05, y: 0.09} ---- !u!114 &4366711961484996688 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2954293574582867020} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3ca92589a6cb2ca4d84cbafdcced1755, type: 3} - m_Name: - m_EditorClassIdentifier: - confirmationDialog: {fileID: 0} - menuConfigFlags: -1 - enableSendMessage: 1 - headerContainer: {fileID: 2509732966232078900} - friendshipContainer: {fileID: 5264641308601234958} - friendAddContainer: {fileID: 216683297733264312} - friendRemoveContainer: {fileID: 5657370882933622279} - friendRequestedContainer: {fileID: 5828753197699605478} - userName: {fileID: 4059980229021049056} - blockText: {fileID: 2583684662727995992} - passportButton: {fileID: 2231115598086967799} - blockButton: {fileID: 5650817640051282846} - reportButton: {fileID: 1559932843573383888} - addFriendButton: {fileID: 2064993301199220373} - cancelFriendButton: {fileID: 3697897552922764556} - deleteFriendButton: {fileID: 7694302186068571231} - messageButton: {fileID: 112276539412484646} - mentionButton: {fileID: 0} ---- !u!222 &1477505211059433124 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2954293574582867020} - m_CullTransparentMesh: 0 ---- !u!114 &4875217099626589154 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2954293574582867020} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 1 - m_Bottom: 0 - m_ChildAlignment: 4 - m_Spacing: 0 - m_ChildForceExpandWidth: 0 - m_ChildForceExpandHeight: 0 - m_ChildControlWidth: 1 - m_ChildControlHeight: 1 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!114 &8296615900673610729 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2954293574582867020} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalFit: 0 - m_VerticalFit: 2 ---- !u!114 &3830721978215548402 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2954293574582867020} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.96470594, g: 0.96470594, b: 0.96470594, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 7b4468575e3ab49e1aec3edd88298137, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!1 &3157762005987778885 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7638105114331276104} - - component: {fileID: 3412693460227531897} - - component: {fileID: 1892122411516350061} - m_Layer: 20 - m_Name: Text (TMP) (1) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7638105114331276104 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3157762005987778885} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 8610803024673720574} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.17956161, y: -5.3176994} - m_SizeDelta: {x: 0.35910797, y: -21.47705} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3412693460227531897 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3157762005987778885} - m_CullTransparentMesh: 0 ---- !u!114 &1892122411516350061 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3157762005987778885} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Invitation Pending - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: c0f2e4affe3f2438d9042ca1db45764f, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: 70f3d6b07a517476dbd2b89cf148f858, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4278190080 - m_fontColor: {r: 0, g: 0, b: 0, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: 0 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 10.5 - m_fontSizeBase: 10.5 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 8 - m_fontSizeMax: 12 - m_fontStyle: 16 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 514 - m_characterSpacing: -3 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_TextWrappingMode: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_EmojiFallbackSupport: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &4297398533384276097 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5144365378092093534} - - component: {fileID: 834682080957436061} - - component: {fileID: 4860190410571385085} - m_Layer: 20 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5144365378092093534 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4297398533384276097} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 7391350145778653537} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &834682080957436061 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4297398533384276097} - m_CullTransparentMesh: 0 ---- !u!114 &4860190410571385085 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4297398533384276097} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: FRIEND - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 26b03903800224f718b64e9afbc91b61, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: cbef7abfd5b4443bf9d5c298a464b5a6, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4283772415 - m_fontColor: {r: 1, g: 0.1764706, b: 0.33333334, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: 0 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 12 - m_fontSizeBase: 12 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 8 - m_fontSizeMax: 11 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 514 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_TextWrappingMode: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 3 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_EmojiFallbackSupport: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &4517969522744211585 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8489894846506230600} - - component: {fileID: 906097533165652548} - - component: {fileID: 4059980229021049056} - m_Layer: 19 - m_Name: PlayerNameLabel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &8489894846506230600 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4517969522744211585} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 6208790594406829408} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &906097533165652548 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4517969522744211585} - m_CullTransparentMesh: 0 ---- !u!114 &4059980229021049056 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4517969522744211585} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Player Name - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 26b03903800224f718b64e9afbc91b61, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: cbef7abfd5b4443bf9d5c298a464b5a6, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4278190080 - m_fontColor: {r: 0, g: 0, b: 0, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 16 - m_fontSizeBase: 20 - m_fontWeight: 400 - m_enableAutoSizing: 1 - m_fontSizeMin: 10 - m_fontSizeMax: 16 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: -2 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_TextWrappingMode: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_EmojiFallbackSupport: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0.000045776367, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &4733887283956242434 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3815080001497336462} - - component: {fileID: 8573998150873003604} - - component: {fileID: 7796058479251054262} - - component: {fileID: 5650817640051282846} - - component: {fileID: 4560418567514995924} - m_Layer: 19 - m_Name: BlockButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &3815080001497336462 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4733887283956242434} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 7186371973213425299} - - {fileID: 7938831965341739030} - m_Father: {fileID: 1697453541807700629} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 144.30188, y: 30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8573998150873003604 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4733887283956242434} - m_CullTransparentMesh: 0 ---- !u!114 &7796058479251054262 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4733887283956242434} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.96470594, g: 0.96470594, b: 0.96470594, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: a3a66afb0cf6d49da8b0b2b18f7b20d0, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!114 &5650817640051282846 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4733887283956242434} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 7796058479251054262} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &4560418567514995924 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4733887283956242434} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4bfd0d144b6d3dd438b84fa14a062c4f, type: 3} - m_Name: - m_EditorClassIdentifier: - playHover: 1 - playClick: 1 - playRelease: 1 - extraClickEvent: {fileID: 0} ---- !u!1 &4858073503845237368 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2087651782629628281} - - component: {fileID: 6911761088295073425} - - component: {fileID: 2464177765233611761} - m_Layer: 20 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2087651782629628281 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4858073503845237368} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 8610803024673720574} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 8.1} - m_SizeDelta: {x: -10.709999, y: -21.672924} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6911761088295073425 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4858073503845237368} - m_CullTransparentMesh: 0 ---- !u!114 &2464177765233611761 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4858073503845237368} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Click to Cancel - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: c0f2e4affe3f2438d9042ca1db45764f, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: 70f3d6b07a517476dbd2b89cf148f858, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4283760895 - m_fontColor: {r: 1, g: 0, b: 0.33333334, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: 0 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 11 - m_fontSizeBase: 11 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 8 - m_fontSizeMax: 11 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 514 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_TextWrappingMode: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_EmojiFallbackSupport: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &5264641308601234958 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8309792886626272780} - - component: {fileID: 2113717421582784638} - m_Layer: 19 - m_Name: FriendshipContainer - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &8309792886626272780 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5264641308601234958} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 7621011522272249960} - - {fileID: 8610803024673720574} - - {fileID: 8852725928508961564} - m_Father: {fileID: 6208790594406829408} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2113717421582784638 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5264641308601234958} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 1 - m_Spacing: 0 - m_ChildForceExpandWidth: 0 - m_ChildForceExpandHeight: 0 - m_ChildControlWidth: 0 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 ---- !u!1 &5657370882933622279 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8852725928508961564} - m_Layer: 20 - m_Name: Friend Indictaor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &8852725928508961564 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5657370882933622279} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1.2, y: 1.2, z: 1.2} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 7391350145778653537} - m_Father: {fileID: 8309792886626272780} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 44.133858, y: -15} - m_SizeDelta: {x: 88.267715, y: 30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &5686019973363681924 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2414586391627009806} - - component: {fileID: 3522806206255182694} - - component: {fileID: 5439503378122742302} - m_Layer: 19 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2414586391627009806 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5686019973363681924} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 6314613212027488367} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 85.43, y: 0} - m_SizeDelta: {x: 92.45282, y: 14} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3522806206255182694 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5686019973363681924} - m_CullTransparentMesh: 0 ---- !u!114 &5439503378122742302 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5686019973363681924} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Unfriend - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: c0f2e4affe3f2438d9042ca1db45764f, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: 70f3d6b07a517476dbd2b89cf148f858, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4278190080 - m_fontColor: {r: 0, g: 0, b: 0, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: 0 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 15 - m_fontSizeBase: 15 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 - m_textAlignment: 513 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_TextWrappingMode: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_EmojiFallbackSupport: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &5828753197699605478 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8610803024673720574} - - component: {fileID: 5981991542273381768} - - component: {fileID: 1499755327653435226} - - component: {fileID: 3697897552922764556} - - component: {fileID: 8999924604433915391} - m_Layer: 20 - m_Name: Request sent - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &8610803024673720574 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5828753197699605478} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1.2, y: 1.2, z: 1.2} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2087651782629628281} - - {fileID: 7638105114331276104} - m_Father: {fileID: 8309792886626272780} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 58.385406, y: -15} - m_SizeDelta: {x: 116.77081, y: 30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5981991542273381768 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5828753197699605478} - m_CullTransparentMesh: 0 ---- !u!114 &1499755327653435226 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5828753197699605478} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 0.22745098} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 017eca2d81e3343959735e87d3b06c02, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!114 &3697897552922764556 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5828753197699605478} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9811321, g: 0.9811321, b: 0.9811321, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 1499755327653435226} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &8999924604433915391 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5828753197699605478} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4bfd0d144b6d3dd438b84fa14a062c4f, type: 3} - m_Name: - m_EditorClassIdentifier: - playHover: 1 - playClick: 1 - playRelease: 1 - extraClickEvent: {fileID: 0} ---- !u!1 &6384050557851659334 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7186371973213425299} - - component: {fileID: 7085907585096074898} - - component: {fileID: 2583684662727995992} - m_Layer: 19 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7186371973213425299 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6384050557851659334} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3815080001497336462} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 85.43, y: 0} - m_SizeDelta: {x: 92.45282, y: 14} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &7085907585096074898 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6384050557851659334} - m_CullTransparentMesh: 0 ---- !u!114 &2583684662727995992 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6384050557851659334} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Block - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: c0f2e4affe3f2438d9042ca1db45764f, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: 70f3d6b07a517476dbd2b89cf148f858, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4278190080 - m_fontColor: {r: 0, g: 0, b: 0, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 15 - m_fontSizeBase: 15 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_TextWrappingMode: 0 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_EmojiFallbackSupport: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &6925151306418597325 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6644512341496027995} - - component: {fileID: 8419023342118476712} - - component: {fileID: 3623862032413778789} - m_Layer: 19 - m_Name: Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6644512341496027995 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6925151306418597325} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 5191761706286609472} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 18.730042, y: 0} - m_SizeDelta: {x: 25, y: 25} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8419023342118476712 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6925151306418597325} - m_CullTransparentMesh: 0 ---- !u!114 &3623862032413778789 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6925151306418597325} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: f7aac23b0ac7b4490b5de5d61400e10d, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!1 &7383115572565308787 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2613626442612894089} - - component: {fileID: 4694537661693774142} - - component: {fileID: 1316612878266058666} - m_Layer: 19 - m_Name: Text (TMP) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2613626442612894089 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7383115572565308787} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 5191761706286609472} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 85.43, y: 0} - m_SizeDelta: {x: 92.45282, y: 14} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4694537661693774142 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7383115572565308787} - m_CullTransparentMesh: 0 ---- !u!114 &1316612878266058666 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7383115572565308787} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: Report - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: c0f2e4affe3f2438d9042ca1db45764f, type: 2} - m_sharedMaterial: {fileID: 2100000, guid: 70f3d6b07a517476dbd2b89cf148f858, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4278190080 - m_fontColor: {r: 0, g: 0, b: 0, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 15 - m_fontSizeBase: 15 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_TextWrappingMode: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_EmojiFallbackSupport: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 1 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &8271572323339009413 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5754077150649480954} - - component: {fileID: 8285656227955906398} - - component: {fileID: 2606590503919927503} - - component: {fileID: 3004679124999793589} - m_Layer: 19 - m_Name: Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5754077150649480954 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8271572323339009413} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 6208790594406829408} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0} - m_AnchorMax: {x: 0.5, y: 1} - m_AnchoredPosition: {x: 0.15, y: 0} - m_SizeDelta: {x: 156.46928, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8285656227955906398 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8271572323339009413} - m_CullTransparentMesh: 0 ---- !u!114 &2606590503919927503 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8271572323339009413} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 5c569e851fe024c7e8e4b57c07575226, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!114 &3004679124999793589 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8271572323339009413} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreLayout: 1 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1 &8541283979869676312 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6314613212027488367} - - component: {fileID: 2827410615075543077} - - component: {fileID: 2792442064173562756} - - component: {fileID: 7694302186068571231} - - component: {fileID: 5816794603780576791} - m_Layer: 19 - m_Name: UnfriendButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &6314613212027488367 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8541283979869676312} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2414586391627009806} - - {fileID: 6506555174203901896} - m_Father: {fileID: 1697453541807700629} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 144.30188, y: 30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2827410615075543077 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8541283979869676312} - m_CullTransparentMesh: 0 ---- !u!114 &2792442064173562756 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8541283979869676312} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.96470594, g: 0.96470594, b: 0.96470594, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: a3a66afb0cf6d49da8b0b2b18f7b20d0, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!114 &7694302186068571231 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8541283979869676312} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 2792442064173562756} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &5816794603780576791 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8541283979869676312} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4bfd0d144b6d3dd438b84fa14a062c4f, type: 3} - m_Name: - m_EditorClassIdentifier: - playHover: 1 - playClick: 1 - playRelease: 1 - extraClickEvent: {fileID: 0} ---- !u!1 &8795563549093748472 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1559391499053547033} - - component: {fileID: 7207923177528325939} - - component: {fileID: 1235473171404075811} - - component: {fileID: 2231115598086967799} - - component: {fileID: 4789911735515243057} - m_Layer: 19 - m_Name: PassportButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1559391499053547033 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8795563549093748472} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 7685703826391962030} - - {fileID: 7121501207148520764} - m_Father: {fileID: 1697453541807700629} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 144.30188, y: 30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &7207923177528325939 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8795563549093748472} - m_CullTransparentMesh: 0 ---- !u!114 &1235473171404075811 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8795563549093748472} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.96470594, g: 0.96470594, b: 0.96470594, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: a3a66afb0cf6d49da8b0b2b18f7b20d0, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!114 &2231115598086967799 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8795563549093748472} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 1235473171404075811} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &4789911735515243057 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8795563549093748472} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4bfd0d144b6d3dd438b84fa14a062c4f, type: 3} - m_Name: - m_EditorClassIdentifier: - playHover: 1 - playClick: 1 - playRelease: 1 - extraClickEvent: {fileID: 0} ---- !u!1 &8854067050485836665 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7391350145778653537} - - component: {fileID: 7838801166915261410} - - component: {fileID: 6253118842325103068} - m_Layer: 20 - m_Name: Friends - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7391350145778653537 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8854067050485836665} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 5144365378092093534} - m_Father: {fileID: 8852725928508961564} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -28.441975, y: -7.8616333} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &7838801166915261410 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8854067050485836665} - m_CullTransparentMesh: 0 ---- !u!114 &6253118842325103068 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8854067050485836665} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 0.1764706, b: 0.33333334, a: 0.16862746} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 017eca2d81e3343959735e87d3b06c02, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 3 ---- !u!1 &8859036475654810075 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5191761706286609472} - - component: {fileID: 4829380501288572053} - - component: {fileID: 5682357761370751885} - - component: {fileID: 1559932843573383888} - - component: {fileID: 7843964992014087897} - m_Layer: 19 - m_Name: ReportButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5191761706286609472 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8859036475654810075} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2613626442612894089} - - {fileID: 6644512341496027995} - m_Father: {fileID: 1697453541807700629} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 144.30188, y: 30} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4829380501288572053 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8859036475654810075} - m_CullTransparentMesh: 0 ---- !u!114 &5682357761370751885 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8859036475654810075} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.96470594, g: 0.96470594, b: 0.96470594, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: a3a66afb0cf6d49da8b0b2b18f7b20d0, type: 3} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 2 ---- !u!114 &1559932843573383888 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8859036475654810075} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 5682357761370751885} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!114 &7843964992014087897 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8859036475654810075} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4bfd0d144b6d3dd438b84fa14a062c4f, type: 3} - m_Name: - m_EditorClassIdentifier: - playHover: 1 - playClick: 1 - playRelease: 1 - extraClickEvent: {fileID: 0} ---- !u!1 &8867828480623445154 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7685703826391962030} - - component: {fileID: 6450923787322356386} - - component: {fileID: 4822288469338260327} - m_Layer: 19 - m_Name: Icon - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7685703826391962030 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8867828480623445154} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1559391499053547033} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.5} - m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 20.2001, y: 0} - m_SizeDelta: {x: 25, y: 25} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6450923787322356386 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8867828480623445154} - m_CullTransparentMesh: 0 ---- !u!114 &4822288469338260327 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8867828480623445154} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 6c9da2cade77947d3bc10b1ad5c4f532, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Prefabs/Resources/UserContextMenuPanel.prefab.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Prefabs/Resources/UserContextMenuPanel.prefab.meta deleted file mode 100644 index 251004a23e..0000000000 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Prefabs/Resources/UserContextMenuPanel.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 6f1d207f329734f55af0baa844844bdc -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Scripts/UserContextMenu.asmdef b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Scripts/UserContextMenu.asmdef index 6b6c47d9ef..cf494ae5aa 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Scripts/UserContextMenu.asmdef +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Scripts/UserContextMenu.asmdef @@ -17,7 +17,9 @@ "GUID:f51ebe6a0ceec4240a699833d6309b23", "GUID:28f74c468a54948bfa9f625c5d428f56", "GUID:2995626b54c60644988f134a69a77450", - "GUID:4d3366a36e77f41cfb7436340334e236" + "GUID:4d3366a36e77f41cfb7436340334e236", + "GUID:e5b8a8ed154ad624f99bcb73d3284a90", + "GUID:2ce94b4811f2a4b9b8dfd650158f7796" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Scripts/UserContextMenu.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Scripts/UserContextMenu.cs index a97ab91864..f5d1801c87 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Scripts/UserContextMenu.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Scripts/UserContextMenu.cs @@ -70,6 +70,7 @@ public enum MenuConfigFlags [SerializeField] internal Button deleteFriendButton; [SerializeField] internal Button messageButton; [SerializeField] internal Button mentionButton; + [SerializeField] internal Button copyNameButton; public static event Action OnOpenPrivateChatRequest; @@ -89,23 +90,24 @@ public enum MenuConfigFlags private MenuConfigFlags currentConfigFlags; private IConfirmationDialog currentConfirmationDialog; private CancellationTokenSource friendOperationsCancellationToken = new (); - private bool isFreomMentionContextMenu = false; + private bool isFromMentionContextMenu; + private IFriendsController friendsControllerInternal; + private IClipboard clipboardInternal; private bool isNewFriendRequestsEnabled => DataStore.i.featureFlags.flags.Get().IsFeatureEnabled("new_friend_requests"); private bool isFriendsEnabled => DataStore.i.featureFlags.flags.Get().IsFeatureEnabled("friends_enabled"); - internal ISocialAnalytics socialAnalytics; - - private IFriendsController _friendsController; private IFriendsController friendsController { get { - if (_friendsController == null) { _friendsController = Environment.i.serviceLocator.Get(); } - - return _friendsController; + return friendsControllerInternal ??= Environment.i.serviceLocator.Get(); } } + private IClipboard clipboard => clipboardInternal ??= Clipboard.Create(); + + internal ISocialAnalytics socialAnalytics; + /// /// Show context menu /// @@ -189,7 +191,7 @@ public void SetFriendshipContentActive(bool isActive) => public void SetPassportOpenSource(bool isFromMention) { - isFreomMentionContextMenu = isFromMention; + isFromMentionContextMenu = isFromMention; } private void Awake() @@ -202,6 +204,7 @@ private void Awake() addFriendButton.onClick.AddListener(OnAddFriendButtonPressed); cancelFriendButton.onClick.AddListener(OnCancelFriendRequestButtonPressed); messageButton.onClick.AddListener(OnMessageButtonPressed); + copyNameButton.onClick.AddListener(OnCopyNameButtonPressed); if (mentionButton != null) mentionButton.onClick.AddListener(OnMentionButtonPressed); @@ -220,7 +223,7 @@ private void OnDisable() private void OnPassportButtonPressed() { OnPassport?.Invoke(userId); - currentPlayerId.Set((userId, isFreomMentionContextMenu ? OPEN_PASSPORT_MENTION_SOURCE : OPEN_PASSPORT_NORMAL_SOURCE)); + currentPlayerId.Set((userId, isFromMentionContextMenu ? OPEN_PASSPORT_MENTION_SOURCE : OPEN_PASSPORT_NORMAL_SOURCE)); Hide(); AudioScriptableObjects.dialogOpen.Play(true); @@ -514,6 +517,11 @@ private static void ShowUserNotificationError(string userIdOrName) Debug.LogError($"User {userIdOrName} was not found in the catalog!"); } + private void OnCopyNameButtonPressed() + { + clipboard.WriteText(userName.text); + } + #if UNITY_EDITOR //This is just to process buttons and container visibility on editor From 063b7b77ddc7eb0cea082614fe6a6e63da77f277 Mon Sep 17 00:00:00 2001 From: Nicolas Lorusso Date: Tue, 25 Jul 2023 15:43:11 -0300 Subject: [PATCH 05/24] copy user names and channel names from context menues --- .../DCL/Controllers/HUD/HUDFactory.cs | 3 +- .../UserContextMenuPanel Variant.prefab | 9 +- .../ChannelOptionsContextualMenu.prefab | 123 ++++++++++++++++++ .../UserContextMenuPanel.prefab | 6 +- .../HUD/TaskbarHUD/Tests/TaskbarHUDShould.cs | 3 +- .../ChannelContextualMenu.cs | 3 + .../IWorldChatWindowView.cs | 1 + .../Tests/WorldChatWindowControllerShould.cs | 15 ++- .../WorldChatWindowComponentView.cs | 5 +- .../WorldChatWindowController.cs | 18 ++- 10 files changed, 171 insertions(+), 15 deletions(-) diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/HUDFactory.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/HUDFactory.cs index 3a45629d0f..a7d2eefb90 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/HUDFactory.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/HUDFactory.cs @@ -107,7 +107,8 @@ public virtual async UniTask CreateHUD(HUDElementID hudElementId, Cancella Environment.i.serviceLocator.Get(), new WebInterfaceBrowserBridge(), CommonScriptableObjects.rendererState, - DataStore.i.mentions); + DataStore.i.mentions, + Clipboard.Create()); case HUDElementID.PRIVATE_CHAT_WINDOW: return new PrivateChatWindowController( DataStore.i, diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Prefabs/UserContextMenuPanel Variant.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Prefabs/UserContextMenuPanel Variant.prefab index 66efe7f1d8..9f25950a98 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Prefabs/UserContextMenuPanel Variant.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Prefabs/UserContextMenuPanel Variant.prefab @@ -232,6 +232,11 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 1740499964211845401, guid: 15120eceeeb9c45ee9d520a23f50872d, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 2222092931775629717, guid: 15120eceeeb9c45ee9d520a23f50872d, type: 3} propertyPath: m_IsActive @@ -461,7 +466,7 @@ PrefabInstance: - target: {fileID: 4733887283956242434, guid: 15120eceeeb9c45ee9d520a23f50872d, type: 3} propertyPath: m_IsActive - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4998034079656445918, guid: 15120eceeeb9c45ee9d520a23f50872d, type: 3} @@ -926,7 +931,7 @@ PrefabInstance: - target: {fileID: 8859036475654810075, guid: 15120eceeeb9c45ee9d520a23f50872d, type: 3} propertyPath: m_IsActive - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 8987714422498632940, guid: 15120eceeeb9c45ee9d520a23f50872d, type: 3} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/ChannelOptionsContextualMenu.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/ChannelOptionsContextualMenu.prefab index b527198f54..f88d3c3752 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/ChannelOptionsContextualMenu.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/ChannelOptionsContextualMenu.prefab @@ -795,6 +795,7 @@ MonoBehaviour: headerTiler: {fileID: 1554500157158794989} leaveButton: {fileID: 8226501301996722826} closeButton: {fileID: 656189215279522018} + copyNameButton: {fileID: 2485679116509274476} --- !u!1 &6047383843708260466 GameObject: m_ObjectHideFlags: 0 @@ -824,6 +825,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 4612255660624800238} + - {fileID: 9122324151661324192} m_Father: {fileID: 7941206006464160925} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -968,3 +970,124 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &7780234006924259851 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9122324151661324192} + - component: {fileID: 8495232716962834360} + - component: {fileID: 5547558713592519961} + - component: {fileID: 2485679116509274476} + m_Layer: 19 + m_Name: CopyNameButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9122324151661324192 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7780234006924259851} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7642772491782127286} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -21.3, y: 0} + m_SizeDelta: {x: 25, y: 25} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8495232716962834360 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7780234006924259851} + m_CullTransparentMesh: 1 +--- !u!114 &5547558713592519961 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7780234006924259851} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2485679116509274476 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7780234006924259851} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5547558713592519961} + m_OnClick: + m_PersistentCalls: + m_Calls: [] diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab index 45be156001..dae79c756b 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab @@ -20,7 +20,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &9109606891818156669 RectTransform: m_ObjectHideFlags: 0 @@ -2288,7 +2288,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &3815080001497336462 RectTransform: m_ObjectHideFlags: 0 @@ -4195,7 +4195,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &5191761706286609472 RectTransform: m_ObjectHideFlags: 0 diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/TaskbarHUD/Tests/TaskbarHUDShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/TaskbarHUD/Tests/TaskbarHUDShould.cs index 3c237ace7c..687a49457a 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/TaskbarHUD/Tests/TaskbarHUDShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/TaskbarHUD/Tests/TaskbarHUDShould.cs @@ -197,7 +197,8 @@ IWorldChatWindowView GivenView() Substitute.For(), Substitute.For(), CommonScriptableObjects.rendererState, - new DataStore_Mentions()); + new DataStore_Mentions(), + Substitute.For()); controller.Initialize(GivenView()); diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelContextualMenu.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelContextualMenu.cs index 6d348f6382..008c042f00 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelContextualMenu.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelContextualMenu.cs @@ -17,8 +17,10 @@ internal enum Options [SerializeField] internal TMP_Text headerTiler; [SerializeField] internal Button leaveButton; [SerializeField] internal Button closeButton; + [SerializeField] internal Button copyNameButton; public event Action OnLeave; + public event Action OnNameCopied; public override void Awake() { @@ -31,6 +33,7 @@ public override void Awake() }); closeButton.onClick.AddListener(() => Hide()); + copyNameButton.onClick.AddListener(() => OnNameCopied?.Invoke(headerTiler.text)); RefreshControl(); } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IWorldChatWindowView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IWorldChatWindowView.cs index 8a9d45a5c4..fdb209e884 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IWorldChatWindowView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IWorldChatWindowView.cs @@ -16,6 +16,7 @@ public interface IWorldChatWindowView event Action OnCreateChannel; event Action OnSignUp; event Action OnRequireWalletReadme; + event Action OnCopyChannelNameRequested; RectTransform Transform { get; } bool IsActive { get; } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/WorldChatWindowControllerShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/WorldChatWindowControllerShould.cs index 3c60116eb2..c2f85351ad 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/WorldChatWindowControllerShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/WorldChatWindowControllerShould.cs @@ -32,6 +32,7 @@ public class WorldChatWindowControllerShould private IChannelsFeatureFlagService channelsFeatureFlagService; private DataStore dataStore; private IBrowserBridge browserBridge; + private IClipboard clipboard; [SetUp] public void SetUp() @@ -54,6 +55,7 @@ public void SetUp() channelsFeatureFlagService.GetAutoJoinChannelsList().Returns(null as AutomaticJoinChannelList); dataStore = new DataStore(); browserBridge = Substitute.For(); + clipboard = Substitute.For(); controller = new WorldChatWindowController(userProfileBridge, friendsController, @@ -64,7 +66,8 @@ public void SetUp() channelsFeatureFlagService, browserBridge, CommonScriptableObjects.rendererState, - new DataStore_Mentions()); + new DataStore_Mentions(), + clipboard); view = Substitute.For(); } @@ -647,6 +650,16 @@ public void DoNotAddThePrivateChatWhenUserIsNotFriend() view.DidNotReceiveWithAnyArgs().SetPrivateChat(default(PrivateChatModel)); } + [Test] + public void CopyChannelNameToClipboard() + { + controller.Initialize(view); + + view.OnCopyChannelNameRequested += Raise.Event>("#channel"); + + clipboard.Received(1).WriteText("#channel"); + } + private void GivenProfile(string userId) { var friendProfile = ScriptableObject.CreateInstance(); diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/WorldChatWindowComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/WorldChatWindowComponentView.cs index 6fa8238728..bbd80d24a3 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/WorldChatWindowComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/WorldChatWindowComponentView.cs @@ -1,9 +1,8 @@ -using DCL.Social.Chat; +using DCL.Helpers; using System; using System.Collections; using System.Collections.Generic; using System.Linq; -using DCL.Helpers; using TMPro; using UIComponents.CollapsableSortedList; using UnityEngine; @@ -82,6 +81,7 @@ public class WorldChatWindowComponentView : BaseComponentView, IWorldChatWindowV public event Action OnCreateChannel; public event Action OnSignUp; public event Action OnRequireWalletReadme; + public event Action OnCopyChannelNameRequested; public RectTransform Transform => (RectTransform) transform; public bool IsActive => gameObject.activeInHierarchy; @@ -111,6 +111,7 @@ int SortByAlphabeticalOrder(PublicChatEntry u1, PublicChatEntry u2) searchBar.OnSearchText += text => OnSearchChatRequested?.Invoke(text); scroll.onValueChanged.AddListener(RequestMorePrivateChats); channelContextualMenu.OnLeave += () => OnLeaveChannel?.Invoke(optionsChannelId); + channelContextualMenu.OnNameCopied += channelName => OnCopyChannelNameRequested?.Invoke(channelName); createChannelButton.onClick.AddListener(() => OnCreateChannel?.Invoke()); connectWalletButton.onClick.AddListener(() => OnSignUp?.Invoke()); whatIsWalletButton.onClick.AddListener(() => OnRequireWalletReadme?.Invoke()); diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/WorldChatWindowController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/WorldChatWindowController.cs index 5d0e82d0f2..8947e11ec1 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/WorldChatWindowController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/WorldChatWindowController.cs @@ -12,7 +12,6 @@ using DCL.Social.Friends; using UnityEngine; using Channel = DCL.Chat.Channels.Channel; -using DCL.Social.Chat; using DCL.Tasks; namespace DCL.Social.Chat @@ -34,6 +33,7 @@ public class WorldChatWindowController : IHUD private readonly IBrowserBridge browserBridge; private readonly RendererState rendererState; private readonly DataStore_Mentions mentionsDataStore; + private readonly IClipboard clipboard; private readonly Dictionary publicChannels = new Dictionary(); private readonly Dictionary lastPrivateMessages = new Dictionary(); private readonly HashSet channelsClearedUnseenNotifications = new HashSet(); @@ -48,7 +48,7 @@ public class WorldChatWindowController : IHUD private IWorldChatWindowView view; private UserProfile ownUserProfile; private bool isRequestingDMs; - private bool areUnseenMessajesRequestedByFirstTime; + private bool areUnseenMessagesRequestedByFirstTime; private string channelToJoinAtTheBeginning; private CancellationTokenSource hideChannelsLoadingCancellationToken = new CancellationTokenSource(); private CancellationTokenSource hidePrivateChatsLoadingCancellationToken = new CancellationTokenSource(); @@ -78,7 +78,8 @@ public WorldChatWindowController( IChannelsFeatureFlagService channelsFeatureFlagService, IBrowserBridge browserBridge, RendererState rendererState, - DataStore_Mentions mentionsDataStore) + DataStore_Mentions mentionsDataStore, + IClipboard clipboard) { this.userProfileBridge = userProfileBridge; this.friendsController = friendsController; @@ -90,6 +91,7 @@ public WorldChatWindowController( this.browserBridge = browserBridge; this.rendererState = rendererState; this.mentionsDataStore = mentionsDataStore; + this.clipboard = clipboard; } public void Initialize(IWorldChatWindowView view, bool isVisible = true) @@ -139,6 +141,7 @@ public void Initialize(IWorldChatWindowView view, bool isVisible = true) view.OnOpenChannelSearch += OpenChannelSearch; view.OnLeaveChannel += LeaveChannel; view.OnCreateChannel += OpenChannelCreationWindow; + view.OnCopyChannelNameRequested += CopyChannelNameToClipboard; chatController.OnChannelUpdated += HandleChannelUpdated; chatController.OnChannelJoined += HandleChannelJoined; @@ -234,7 +237,7 @@ public void SetVisibility(bool visible) view.HideChannelsLoading(); } - if (!areUnseenMessajesRequestedByFirstTime) + if (!areUnseenMessagesRequestedByFirstTime) RequestUnreadChannelsMessages(); } @@ -686,7 +689,7 @@ private void HandleAskForJoinChannelAfterRendererState(bool current, bool _) private void RequestUnreadChannelsMessages() { chatController.GetUnseenMessagesByChannel(); - areUnseenMessajesRequestedByFirstTime = true; + areUnseenMessagesRequestedByFirstTime = true; } private void OpenChannelSearch() @@ -744,5 +747,10 @@ private void OpenWalletReadme() => browserBridge.OpenUrl("https://docs.decentraland.org/player/blockchain-integration/get-a-wallet/"); private void SignUp() => userProfileBridge.SignUp(); + + private void CopyChannelNameToClipboard(string channelName) + { + clipboard.WriteText(channelName); + } } } From f8d145f1895019564c5d63bf7506bc986615aaa4 Mon Sep 17 00:00:00 2001 From: Nicolas Lorusso Date: Tue, 25 Jul 2023 16:24:21 -0300 Subject: [PATCH 06/24] implemented copy channel name from channel chat window --- .../WorldChatWindowHUD/ChatChannelComponentView.cs | 4 ++-- .../WorldChatWindowHUD/ChatChannelHUDController.cs | 6 ++++++ .../WorldChatWindowHUD/IChatChannelWindowView.cs | 6 ++---- .../Tests/ChatChannelHUDControllerShould.cs | 13 ++++++++++++- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChatChannelComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChatChannelComponentView.cs index 1b94902510..e7e9a84755 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChatChannelComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChatChannelComponentView.cs @@ -1,6 +1,4 @@ -using DCL.Social.Chat; using System; -using System.Collections; using TMPro; using UnityEngine; using UnityEngine.EventSystems; @@ -43,6 +41,7 @@ public class ChatChannelComponentView : BaseComponentView, IChatChannelWindowVie public event Action OnShowMembersList; public event Action OnHideMembersList; public event Action OnMuteChanged; + public event Action OnCopyNameRequested; public bool IsActive => gameObject.activeInHierarchy; public IChatHUDComponentView ChatHUD => chatView; @@ -57,6 +56,7 @@ public override void Awake() backButton.onClick.AddListener(() => OnBack?.Invoke()); closeButton.onClick.AddListener(() => OnClose?.Invoke()); contextualMenu.OnLeave += () => OnLeaveChannel?.Invoke(); + contextualMenu.OnNameCopied += s => OnCopyNameRequested?.Invoke(s); optionsButton.onClick.AddListener(ShowOptionsMenu); // TODO: It was decided to temporally remove the loading of the channel's history. We'll re-enable it later. //scroll.onValueChanged.AddListener(scrollPos => diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChatChannelHUDController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChatChannelHUDController.cs index 575e63a495..b205425917 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChatChannelHUDController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChatChannelHUDController.cs @@ -75,6 +75,7 @@ public void Initialize(IChatChannelWindowView view, bool isVisible = true) view.OnShowMembersList += ShowMembersList; view.OnHideMembersList += HideMembersList; view.OnMuteChanged += MuteChannel; + view.OnCopyNameRequested += CopyNameToClipboard; dataStore.mentions.someoneMentionedFromContextMenu.OnChange += SomeoneMentionedFromContextMenu; @@ -97,6 +98,11 @@ public void Initialize(IChatChannelWindowView view, bool isVisible = true) this.isVisible = isVisible; } + private void CopyNameToClipboard(string channelName) + { + clipboard.WriteText(channelName); + } + public void Setup(string channelId) { channelMembersHUDController.SetChannelId(channelId); diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IChatChannelWindowView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IChatChannelWindowView.cs index 020389e106..9a9aefcabc 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IChatChannelWindowView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/IChatChannelWindowView.cs @@ -1,5 +1,4 @@ -using DCL.Social.Chat; -using System; +using System; using UnityEngine; namespace DCL.Social.Chat @@ -7,19 +6,18 @@ namespace DCL.Social.Chat public interface IChatChannelWindowView { event Action OnClose; - event Action OnFocused; event Action OnBack; event Action OnRequireMoreMessages; event Action OnLeaveChannel; event Action OnShowMembersList; event Action OnHideMembersList; event Action OnMuteChanged; + event Action OnCopyNameRequested; bool IsActive { get; } IChatHUDComponentView ChatHUD { get; } IChannelMembersComponentView ChannelMembersHUD { get; } RectTransform Transform { get; } - bool IsFocused { get; } void Dispose(); void Hide(); diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChatChannelHUDControllerShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChatChannelHUDControllerShould.cs index 9c927b6f14..ed67b1f364 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChatChannelHUDControllerShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/Tests/ChatChannelHUDControllerShould.cs @@ -27,6 +27,7 @@ public class ChatChannelHUDControllerShould private IProfanityFilter profanityFilter; private IUserProfileBridge userProfileBridge; private IChatMentionSuggestionProvider mentionSuggestionProvider; + private IClipboard clipboard; [SetUp] public void SetUp() @@ -50,6 +51,8 @@ public void SetUp() profanityFilter = Substitute.For(); mentionSuggestionProvider = Substitute.For(); + clipboard = Substitute.For(); + controller = new ChatChannelHUDController(dataStore, userProfileBridge, chatController, @@ -57,7 +60,7 @@ public void SetUp() socialAnalytics, profanityFilter, mentionSuggestionProvider, - Substitute.For()); + clipboard); view = Substitute.For(); chatView = Substitute.For(); @@ -194,5 +197,13 @@ public void SuggestNearbyUsers(string text, string name) mentionSuggestionProvider.Received(1).GetProfilesFromChatChannelsStartingWith(name, CHANNEL_ID, 5, Arg.Any()); } + + [Test] + public void CopyChannelNameToClipboard() + { + view.OnCopyNameRequested += Raise.Event>("#my-channel"); + + clipboard.Received(1).WriteText("#my-channel"); + } } } From 66888bbca0f70a96209be3e22859cd494bb8c6d4 Mon Sep 17 00:00:00 2001 From: Nicolas Lorusso Date: Wed, 26 Jul 2023 12:31:14 -0300 Subject: [PATCH 07/24] implemented copy location from minimap --- .../DCL/Controllers/HUD/HUDDesktop.asmdef | 4 +- .../DCL/Controllers/HUD/HUDDesktopFactory.cs | 3 +- .../Minimap/MinimapHUDControllerDesktop.cs | 5 +- .../HUD/Minimap/MinimapHUDDesktop.asmdef | 3 +- .../DCL/Controllers/HUD/HUDFactory.cs | 5 +- .../Controllers/HUD/Minimap/MinimapHUD.asmdef | 3 +- .../HUD/Minimap/MinimapHUDController.cs | 79 ++++++----- .../Controllers/HUD/Minimap/MinimapHUDView.cs | 9 +- .../HUD/Minimap/Resources/MinimapHUD.prefab | 123 ++++++++++++++++++ .../HUD/Minimap/Tests/MinimapHUDTests.asmdef | 3 +- .../HUD/Minimap/Tests/MinimapHUDTests.cs | 29 ++++- .../HUD/NavMap/Tests/NavmapTests.asmdef | 3 +- .../HUD/NavMap/Tests/NavmapTests.cs | 4 +- .../HUD/NavMap/Tests/NavmapToastViewShould.cs | 4 +- 14 files changed, 220 insertions(+), 57 deletions(-) diff --git a/unity-renderer/Assets/Desktop/Scripts/MainScripts/DCL/Controllers/HUD/HUDDesktop.asmdef b/unity-renderer/Assets/Desktop/Scripts/MainScripts/DCL/Controllers/HUD/HUDDesktop.asmdef index 6804365d49..54e1a96d1d 100644 --- a/unity-renderer/Assets/Desktop/Scripts/MainScripts/DCL/Controllers/HUD/HUDDesktop.asmdef +++ b/unity-renderer/Assets/Desktop/Scripts/MainScripts/DCL/Controllers/HUD/HUDDesktop.asmdef @@ -26,7 +26,9 @@ "GUID:301149363e31a4bdaa1943465a825c8e", "GUID:4d7712e4b2446440a8af21fd3ce8690e", "GUID:81f3218b29e049144b175dad2ebbac1b", - "GUID:006c0e0a70294dbba8a4cbcfb77e1f7d" + "GUID:006c0e0a70294dbba8a4cbcfb77e1f7d", + "GUID:2ce94b4811f2a4b9b8dfd650158f7796", + "GUID:e5b8a8ed154ad624f99bcb73d3284a90" ], "includePlatforms": [ "Editor", diff --git a/unity-renderer/Assets/Desktop/Scripts/MainScripts/DCL/Controllers/HUD/HUDDesktopFactory.cs b/unity-renderer/Assets/Desktop/Scripts/MainScripts/DCL/Controllers/HUD/HUDDesktopFactory.cs index ff1fd5f12c..00e958ffeb 100644 --- a/unity-renderer/Assets/Desktop/Scripts/MainScripts/DCL/Controllers/HUD/HUDDesktopFactory.cs +++ b/unity-renderer/Assets/Desktop/Scripts/MainScripts/DCL/Controllers/HUD/HUDDesktopFactory.cs @@ -54,7 +54,8 @@ public override async UniTask CreateHUD(HUDElementID hudElementId, Cancell new WebInterfaceHomeLocationController(), DCL.Environment.i, DCL.Environment.i.serviceLocator.Get(), - new PlacesAnalytics()); + new PlacesAnalytics(), + Clipboard.Create()); break; default: diff --git a/unity-renderer/Assets/Desktop/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDControllerDesktop.cs b/unity-renderer/Assets/Desktop/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDControllerDesktop.cs index ea1f71dc12..c7011d8a26 100644 --- a/unity-renderer/Assets/Desktop/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDControllerDesktop.cs +++ b/unity-renderer/Assets/Desktop/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDControllerDesktop.cs @@ -12,8 +12,9 @@ public MinimapHUDControllerDesktop( IHomeLocationController locationController, Environment.Model environment, IPlacesAPIService placesAPIService, - IPlacesAnalytics placesAnalytics + IPlacesAnalytics placesAnalytics, + IClipboard clipboard ) - : base(minimapMetadataController, locationController, environment, placesAPIService, placesAnalytics) { } + : base(minimapMetadataController, locationController, environment, placesAPIService, placesAnalytics, clipboard) { } } } diff --git a/unity-renderer/Assets/Desktop/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDDesktop.asmdef b/unity-renderer/Assets/Desktop/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDDesktop.asmdef index 145896262b..979b924ec3 100644 --- a/unity-renderer/Assets/Desktop/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDDesktop.asmdef +++ b/unity-renderer/Assets/Desktop/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDDesktop.asmdef @@ -7,7 +7,8 @@ "GUID:0e967802b778d404eac1ca5ea340e290", "GUID:2f3b53e8380cc4aae947b17780173adb", "GUID:fbcc413e192ef9048811d47ab0aca0c0", - "GUID:006c0e0a70294dbba8a4cbcfb77e1f7d" + "GUID:006c0e0a70294dbba8a4cbcfb77e1f7d", + "GUID:e5b8a8ed154ad624f99bcb73d3284a90" ], "includePlatforms": [ "Editor", diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/HUDFactory.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/HUDFactory.cs index a7d2eefb90..4a3718543d 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/HUDFactory.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/HUDFactory.cs @@ -58,7 +58,10 @@ public virtual async UniTask CreateHUD(HUDElementID hudElementId, Cancella case HUDElementID.NONE: break; case HUDElementID.MINIMAP: - return new MinimapHUDController(MinimapMetadataController.i, new WebInterfaceHomeLocationController(), Environment.i, Environment.i.serviceLocator.Get(), new PlacesAnalytics()); + return new MinimapHUDController(MinimapMetadataController.i, + new WebInterfaceHomeLocationController(), Environment.i, + Environment.i.serviceLocator.Get(), + new PlacesAnalytics(), Clipboard.Create()); case HUDElementID.PROFILE_HUD: ProfileHUDViewV2 view = Object.Instantiate(Resources.Load("ProfileHUD_V2")); diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUD.asmdef b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUD.asmdef index d4355ded65..5dae6584fc 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUD.asmdef +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUD.asmdef @@ -30,7 +30,8 @@ "GUID:006c0e0a70294dbba8a4cbcfb77e1f7d", "GUID:4d3366a36e77f41cfb7436340334e236", "GUID:b8662e798190944f4b638fbeb48e84f0", - "GUID:f51ebe6a0ceec4240a699833d6309b23" + "GUID:f51ebe6a0ceec4240a699833d6309b23", + "GUID:e5b8a8ed154ad624f99bcb73d3284a90" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDController.cs index 140913bf4a..ce4ee4ee40 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDController.cs @@ -8,7 +8,6 @@ using DCLServices.MapRendererV2.MapLayers; using DCLServices.PlacesAPIService; using System; -using System.Linq; using System.Threading; using UnityEngine; using Object = UnityEngine.Object; @@ -18,17 +17,21 @@ public class MinimapHUDController : IHUD private static bool VERBOSE = false; public MinimapHUDView view; + private FloatVariable minimapZoom => CommonScriptableObjects.minimapZoom; private IntVariable currentSceneNumber => CommonScriptableObjects.sceneNumber; private Vector2IntVariable playerCoords => CommonScriptableObjects.playerCoords; private Vector2Int currentCoords; - private Vector2Int homeCoords = new Vector2Int(0,0); - private MinimapMetadataController metadataController; - private IHomeLocationController locationController; - private DCL.Environment.Model environment; + private Vector2Int homeCoords = new Vector2Int(0, 0); + + private readonly MinimapMetadataController metadataController; + private readonly IHomeLocationController locationController; + private readonly DCL.Environment.Model environment; private readonly IPlacesAPIService placesAPIService; private readonly IPlacesAnalytics placesAnalytics; - private BaseVariable minimapVisible = DataStore.i.HUDs.minimapVisible; + private readonly IClipboard clipboard; + private readonly BaseVariable minimapVisible = DataStore.i.HUDs.minimapVisible; + private readonly CancellationTokenSource disposingCts = new (); private static readonly MapLayer RENDER_LAYERS = MapLayer.Atlas | MapLayer.HomePoint | MapLayer.PlayerMarker | MapLayer.HotUsersMarkers | MapLayer.ScenesOfInterest; @@ -37,17 +40,16 @@ private static readonly MapLayer RENDER_LAYERS private IMapCameraController mapCameraController; private MapRendererTrackPlayerPosition mapRendererTrackPlayerPosition; private CancellationTokenSource retrievingFavoritesCts; - private readonly CancellationTokenSource disposingCts = new CancellationTokenSource(); - public MinimapHUDModel model { get; private set; } = new (); + private MinimapHUDModel model { get; set; } = new (); public MinimapHUDController( MinimapMetadataController minimapMetadataController, IHomeLocationController locationController, DCL.Environment.Model environment, IPlacesAPIService placesAPIService, - IPlacesAnalytics placesAnalytics - ) + IPlacesAnalytics placesAnalytics, + IClipboard clipboard) { minimapZoom.Set(1f); metadataController = minimapMetadataController; @@ -55,9 +57,11 @@ IPlacesAnalytics placesAnalytics this.environment = environment; this.placesAPIService = placesAPIService; this.placesAnalytics = placesAnalytics; + this.clipboard = clipboard; - if(metadataController != null) + if (metadataController != null) metadataController.OnHomeChanged += SetNewHome; + minimapVisible.OnChange += SetVisibility; } @@ -67,7 +71,8 @@ protected virtual MinimapHUDView CreateView() => public void Initialize() { view = CreateView(); - this.view.OnFavoriteToggleClicked += OnFavoriteToggleClicked; + view.OnFavoriteToggleClicked += OnFavoriteToggleClicked; + view.OnCopyLocationRequested += OnCopyLocationToClipboard; InitializeMapRenderer(); OnPlayerCoordsChange(CommonScriptableObjects.playerCoords.Get(), Vector2Int.zero); @@ -81,6 +86,7 @@ public void Initialize() public void Dispose() { disposingCts?.SafeCancelAndDispose(); + if (view != null) { DisposeMapRenderer(); @@ -92,6 +98,7 @@ public void Dispose() if (metadataController != null) metadataController.OnHomeChanged -= SetNewHome; + minimapVisible.OnChange -= SetVisibility; } @@ -143,7 +150,8 @@ private void OnPlayerCoordsChange(Vector2Int current, Vector2Int previous) if (sceneInfo != null) { UpdateSceneName(sceneInfo.name); - if(sceneInfo.parcels.Count > 0) + + if (sceneInfo.parcels.Count > 0) RetrieveFavoriteState(sceneInfo.parcels[0]); } } @@ -188,19 +196,25 @@ public void UpdatePlayerPosition(string position) view.UpdateData(model); } - public void AddZoomDelta(float delta) { minimapZoom.Set(Mathf.Clamp01(minimapZoom.Get() + delta)); } + public void AddZoomDelta(float delta) + { + minimapZoom.Set(Mathf.Clamp01(minimapZoom.Get() + delta)); + } - public void ToggleOptions() { view.ToggleOptions(); } + public void ToggleOptions() + { + view.ToggleOptions(); + } - public void ToggleSceneUI(bool isUIOn) { DataStore.i.HUDs.isCurrentSceneUiEnabled.Set(isUIOn); } + public void ToggleSceneUI(bool isUIOn) + { + DataStore.i.HUDs.isCurrentSceneUiEnabled.Set(isUIOn); + } public void AddBookmark() { //TODO: - if (VERBOSE) - { - Debug.Log("Add bookmark pressed"); - } + if (VERBOSE) { Debug.Log("Add bookmark pressed"); } } public void ReportScene() @@ -212,15 +226,16 @@ public void ReportScene() public void SetHomeScene(bool isOn) { var coords = playerCoords.Get(); + if (playerCoords == homeCoords) { if (!isOn) - locationController.SetHomeScene(new Vector2(0,0)); + locationController.SetHomeScene(new Vector2(0, 0)); } else { - if(isOn) - locationController.SetHomeScene(new Vector2(coords.x,coords.y)); + if (isOn) + locationController.SetHomeScene(new Vector2(coords.x, coords.y)); } } @@ -234,7 +249,8 @@ private void OnSceneInfoUpdated(MinimapMetadata.MinimapSceneInfo sceneInfo) if (sceneInfo.parcels.Contains(CommonScriptableObjects.playerCoords.Get())) { UpdateSceneName(sceneInfo.name); - if(sceneInfo.parcels.Count > 0) + + if (sceneInfo.parcels.Count > 0) RetrieveFavoriteState(sceneInfo.parcels[0]); } } @@ -256,19 +272,13 @@ private async UniTaskVoid RetrieveFavoriteStateAsync(Vector2Int currentParcel, C view.SetIsAPlace(true); view.SetCurrentFavoriteStatus(place.id, isFavorite); } - catch (NotAPlaceException) - { - view.SetIsAPlace(false); - } - catch (OperationCanceledException) - { - view.SetIsAPlace(false); - } + catch (NotAPlaceException) { view.SetIsAPlace(false); } + catch (OperationCanceledException) { view.SetIsAPlace(false); } } private void OnFavoriteToggleClicked(string uuid, bool isFavorite) { - if(isFavorite) + if (isFavorite) placesAnalytics.AddFavorite(uuid, IPlacesAnalytics.ActionSource.FromMinimap); else placesAnalytics.RemoveFavorite(uuid, IPlacesAnalytics.ActionSource.FromMinimap); @@ -278,4 +288,7 @@ private void OnFavoriteToggleClicked(string uuid, bool isFavorite) private void SetVisibility(bool current, bool _) => SetVisibility(current); + + private void OnCopyLocationToClipboard() => + clipboard.WriteText($"{model.sceneName}: {model.playerPosition}"); } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDView.cs index b68da11f6a..618343d201 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDView.cs @@ -10,9 +10,6 @@ public class MinimapHUDView : MonoBehaviour public const string VIEW_PATH = "MinimapHUD"; public const string VIEW_OBJECT_NAME = "_MinimapHUD"; - private int START_MENU_HOVER_BOOL = Animator.StringToHash("hover"); - private int START_MENU_PRESSED_TRIGGER = Animator.StringToHash("pressed"); - public event Action OnFavoriteToggleClicked; [Header("Information")] [SerializeField] @@ -29,6 +26,7 @@ public class MinimapHUDView : MonoBehaviour [SerializeField] internal ToggleComponentView setHomeScene; [SerializeField] internal FavoriteButtonComponentView favoriteToggle; [SerializeField] internal Image disableFavorite; + [SerializeField] internal Button copyLocationButton; [Header("Map Renderer")] public RectTransform mapRenderContainer; @@ -44,13 +42,13 @@ public class MinimapHUDView : MonoBehaviour public RectTransform mapViewport; - public static System.Action OnUpdateData; - public static System.Action OnOpenNavmapClicked; public InputAction_Trigger toggleNavMapAction; private IMouseCatcher mouseCatcher; private HUDCanvasCameraModeController hudCanvasCameraModeController; private MinimapHUDController controller; + public event Action OnCopyLocationRequested; + private void Awake() { hudCanvasCameraModeController = new HUDCanvasCameraModeController(GetComponent(), DataStore.i.camera.hudsCamera); @@ -69,6 +67,7 @@ public void Initialize(MinimapHUDController controller) reportSceneButton.onClick.AddListener(ReportScene); setHomeScene.OnSelectedChanged += (isOn, id, name) => SetHomeScene(isOn); openNavmapButton.onClick.AddListener(toggleNavMapAction.RaiseOnTriggered); + copyLocationButton.onClick.AddListener(() => OnCopyLocationRequested?.Invoke()); if (mouseCatcher != null) mouseCatcher.OnMouseLock += OnMouseLocked; diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab index e31b6a7768..8e302389d8 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab @@ -1572,6 +1572,7 @@ RectTransform: - {fileID: 1895396519040239906} - {fileID: 2510874036520255937} - {fileID: 1389186720452405949} + - {fileID: 3806909815722944389} m_Father: {fileID: 487610079711947160} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -2082,6 +2083,7 @@ MonoBehaviour: setHomeScene: {fileID: 144121603004425806} favoriteToggle: {fileID: 5354735605876132074} disableFavorite: {fileID: 8807621177051872691} + copyLocationButton: {fileID: 5985667873791372442} mapRenderContainer: {fileID: 1347496358759656025} k__BackingField: {fileID: 8735274298755738432} k__BackingField: {fileID: 22407141632856678} @@ -2984,6 +2986,127 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 2 +--- !u!1 &7290631435154145140 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3806909815722944389} + - component: {fileID: 3714597375162625211} + - component: {fileID: 6092858593562593927} + - component: {fileID: 5985667873791372442} + m_Layer: 5 + m_Name: CopyLocationButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3806909815722944389 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7290631435154145140} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4773941053877397113} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 39.5, y: 0} + m_SizeDelta: {x: 25, y: 25} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3714597375162625211 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7290631435154145140} + m_CullTransparentMesh: 1 +--- !u!114 &6092858593562593927 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7290631435154145140} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5985667873791372442 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7290631435154145140} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 6092858593562593927} + m_OnClick: + m_PersistentCalls: + m_Calls: [] --- !u!1 &7369622533085329868 GameObject: m_ObjectHideFlags: 0 diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Tests/MinimapHUDTests.asmdef b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Tests/MinimapHUDTests.asmdef index 37a3c5fee9..036f64e861 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Tests/MinimapHUDTests.asmdef +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Tests/MinimapHUDTests.asmdef @@ -13,7 +13,8 @@ "GUID:fbcc413e192ef9048811d47ab0aca0c0", "GUID:d0d87470ef1844e08586dabeb6d672bd", "GUID:3b80b0b562b1cbc489513f09fc1b8f69", - "GUID:006c0e0a70294dbba8a4cbcfb77e1f7d" + "GUID:006c0e0a70294dbba8a4cbcfb77e1f7d", + "GUID:e5b8a8ed154ad624f99bcb73d3284a90" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Tests/MinimapHUDTests.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Tests/MinimapHUDTests.cs index a321fd4c99..4d9d854474 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Tests/MinimapHUDTests.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Tests/MinimapHUDTests.cs @@ -1,30 +1,35 @@ using DCL; -using DCLServices.MapRendererV2; using DCLServices.PlacesAPIService; +using NSubstitute; using NUnit.Framework; +using System; using System.Collections; using TMPro; using UnityEngine; using UnityEngine.TestTools; -using NSubstitute; +using Environment = DCL.Environment; +using Random = UnityEngine.Random; namespace Tests { public class MinimapHUDTests : IntegrationTestSuite_Legacy { private MinimapHUDController controller; + private IClipboard clipboard; [UnitySetUp] protected override IEnumerator SetUp() { yield return base.SetUp(); + clipboard = Substitute.For(); + controller = new MinimapHUDController( Substitute.For(), Substitute.For(), - DCL.Environment.i, - DCL.Environment.i.serviceLocator.Get(), - Substitute.For() - ); + Environment.i, + Environment.i.serviceLocator.Get(), + Substitute.For(), + clipboard); controller.Initialize(); } @@ -92,5 +97,17 @@ public void MinimapHUD_SetPlayerCoordinatesString() [Test] public void MinimapHUD_OptionsPanel() { Assert.IsNotNull(controller); } + + [Test] + public void CopyLocationToClipboard() + { + controller.UpdateSceneName("Any Scene"); + controller.UpdatePlayerPosition(new Vector2(12, 65)); + + MinimapHUDView view = controller.view; + view.copyLocationButton.onClick.Invoke(); + + clipboard.Received(1).WriteText("Any Scene: 12,65"); + } } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NavMap/Tests/NavmapTests.asmdef b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NavMap/Tests/NavmapTests.asmdef index 6162f2ee50..bca8dd9568 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NavMap/Tests/NavmapTests.asmdef +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NavMap/Tests/NavmapTests.asmdef @@ -21,7 +21,8 @@ "GUID:3b80b0b562b1cbc489513f09fc1b8f69", "GUID:006c0e0a70294dbba8a4cbcfb77e1f7d", "GUID:b8662e798190944f4b638fbeb48e84f0", - "GUID:f51ebe6a0ceec4240a699833d6309b23" + "GUID:f51ebe6a0ceec4240a699833d6309b23", + "GUID:e5b8a8ed154ad624f99bcb73d3284a90" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NavMap/Tests/NavmapTests.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NavMap/Tests/NavmapTests.cs index a84f240996..c003b0be37 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NavMap/Tests/NavmapTests.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NavMap/Tests/NavmapTests.cs @@ -45,8 +45,8 @@ protected override IEnumerator SetUp() Substitute.For(), DCL.Environment.i, placesAPIService, - Substitute.For() - ); + Substitute.For(), + Substitute.For()); controller.Initialize(); navmapView = Object.FindObjectOfType(); } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NavMap/Tests/NavmapToastViewShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NavMap/Tests/NavmapToastViewShould.cs index 47ef34aa21..9415454d06 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NavMap/Tests/NavmapToastViewShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NavMap/Tests/NavmapToastViewShould.cs @@ -41,8 +41,8 @@ protected override IEnumerator SetUp() Substitute.For(), DCL.Environment.i, Substitute.For(), - Substitute.For() - ); + Substitute.For(), + Substitute.For()); controller.Initialize(); navmapView = Object.FindObjectOfType(); navmapToastView = navmapView.toastView; From 9f95e019a15831a92539d48f0fa51540f6ddc8c1 Mon Sep 17 00:00:00 2001 From: Nicolas Lorusso Date: Wed, 26 Jul 2023 15:24:13 -0300 Subject: [PATCH 08/24] integrated toast when copying the location from minimap --- .../HUD/Minimap/MinimapHUDController.cs | 5 +- .../Controllers/HUD/Minimap/MinimapHUDView.cs | 18 +- .../HUD/Minimap/Resources/MinimapHUD.prefab | 165 +++++++++- .../Prefabs/TextCopiedToast.prefab | 282 ++++++++++++++++++ .../Prefabs/TextCopiedToast.prefab.meta | 7 + 5 files changed, 461 insertions(+), 16 deletions(-) create mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NotificationHUD/Prefabs/TextCopiedToast.prefab create mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NotificationHUD/Prefabs/TextCopiedToast.prefab.meta diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDController.cs index ce4ee4ee40..38eafea16a 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDController.cs @@ -289,6 +289,9 @@ private void OnFavoriteToggleClicked(string uuid, bool isFavorite) private void SetVisibility(bool current, bool _) => SetVisibility(current); - private void OnCopyLocationToClipboard() => + private void OnCopyLocationToClipboard() + { clipboard.WriteText($"{model.sceneName}: {model.playerPosition}"); + view.ShowLocationCopiedToast(); + } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDView.cs index 618343d201..f7b9968182 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDView.cs @@ -1,6 +1,9 @@ +using Cysharp.Threading.Tasks; using System; using DCL; +using DCL.Tasks; using DCLServices.MapRendererV2.ConsumerUtils; +using System.Threading; using TMPro; using UnityEngine; using UnityEngine.UI; @@ -27,6 +30,7 @@ public class MinimapHUDView : MonoBehaviour [SerializeField] internal FavoriteButtonComponentView favoriteToggle; [SerializeField] internal Image disableFavorite; [SerializeField] internal Button copyLocationButton; + [SerializeField] internal ShowHideAnimator locationCopiedToast; [Header("Map Renderer")] public RectTransform mapRenderContainer; @@ -116,7 +120,10 @@ internal void UpdateData(MinimapHUDModel model) playerPositionText.text = model.playerPosition; } - public void ToggleOptions() { sceneOptionsPanel.SetActive(!sceneOptionsPanel.activeSelf); } + public void ToggleOptions() + { + sceneOptionsPanel.SetActive(!sceneOptionsPanel.activeSelf); + } public void SetVisibility(bool visible) { @@ -141,10 +148,17 @@ public void SetIsAPlace(bool isAPlace) disableFavorite.gameObject.SetActive(!isAPlace); } + public void ShowLocationCopiedToast() + { + locationCopiedToast.gameObject.SetActive(true); + locationCopiedToast.ShowDelayHide(3); + } + private void OnDestroy() { - if(mouseCatcher != null) + if (mouseCatcher != null) mouseCatcher.OnMouseLock -= OnMouseLocked; + hudCanvasCameraModeController?.Dispose(); } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab index 8e302389d8..c1447bc44f 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab @@ -1573,6 +1573,7 @@ RectTransform: - {fileID: 2510874036520255937} - {fileID: 1389186720452405949} - {fileID: 3806909815722944389} + - {fileID: 5050455822075727651} m_Father: {fileID: 487610079711947160} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -2084,6 +2085,7 @@ MonoBehaviour: favoriteToggle: {fileID: 5354735605876132074} disableFavorite: {fileID: 8807621177051872691} copyLocationButton: {fileID: 5985667873791372442} + locationCopiedToast: {fileID: 8712619777433546799} mapRenderContainer: {fileID: 1347496358759656025} k__BackingField: {fileID: 8735274298755738432} k__BackingField: {fileID: 22407141632856678} @@ -2283,8 +2285,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 19.099998, y: -3.100006} - m_SizeDelta: {x: 127.56, y: 21.9} + m_AnchoredPosition: {x: 19.099998, y: -1} + m_SizeDelta: {x: 155.81, y: 21.9} m_Pivot: {x: 0, y: 1} --- !u!222 &7636310316362318016 CanvasRenderer: @@ -2341,8 +2343,8 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 14 - m_fontSizeBase: 14 + m_fontSize: 13 + m_fontSizeBase: 13 m_fontWeight: 400 m_enableAutoSizing: 0 m_fontSizeMin: 10 @@ -3022,8 +3024,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 39.5, y: 0} - m_SizeDelta: {x: 25, y: 25} + m_AnchoredPosition: {x: 46.079987, y: -8.500002} + m_SizeDelta: {x: 18, y: 18} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &3714597375162625211 CanvasRenderer: @@ -3046,16 +3048,16 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 1, g: 1, b: 1, a: 0.38431373} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 + m_Sprite: {fileID: 21300000, guid: 09d7c763693b246d7bdb6df137a6f0cc, type: 3} + m_Type: 0 + m_PreserveAspect: 1 m_FillCenter: 1 m_FillMethod: 4 m_FillAmount: 1 @@ -3142,7 +3144,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 70.08, y: 0.70000076} + m_AnchoredPosition: {x: 70.08, y: -7.8} m_SizeDelta: {x: 19, y: 17.5} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1194968960946825143 @@ -3689,6 +3691,143 @@ RectTransform: type: 3} m_PrefabInstance: {fileID: 3565392663511055519} m_PrefabAsset: {fileID: 0} +--- !u!1001 &4057330064882049560 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 4773941053877397113} + m_Modifications: + - target: {fileID: 7841483112454866825, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_Name + value: TextCopiedToast + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_RootOrder + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_SizeDelta.x + value: 126 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 157.1 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0.29993057 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 69d18becfc9ef4b7f92abaeae62a2ece, type: 3} +--- !u!224 &5050455822075727651 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + m_PrefabInstance: {fileID: 4057330064882049560} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8712619777433546799 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4658966891920265783, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + m_PrefabInstance: {fileID: 4057330064882049560} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d8b939b5bedb9494b806609faeda7d8d, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1001 &7266304730033528544 PrefabInstance: m_ObjectHideFlags: 0 @@ -4061,12 +4200,12 @@ PrefabInstance: - target: {fileID: 5499343381416532105, guid: 633e570ad7b45486690b28e43c776f5e, type: 3} propertyPath: m_AnchoredPosition.x - value: 70.07999 + value: 70.08 objectReference: {fileID: 0} - target: {fileID: 5499343381416532105, guid: 633e570ad7b45486690b28e43c776f5e, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -8.500002 objectReference: {fileID: 0} - target: {fileID: 5499343381416532105, guid: 633e570ad7b45486690b28e43c776f5e, type: 3} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NotificationHUD/Prefabs/TextCopiedToast.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NotificationHUD/Prefabs/TextCopiedToast.prefab new file mode 100644 index 0000000000..7a7142390a --- /dev/null +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NotificationHUD/Prefabs/TextCopiedToast.prefab @@ -0,0 +1,282 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3731144675817853908 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 910873934197864832} + - component: {fileID: 2021814114125571078} + - component: {fileID: 6305135970340749138} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &910873934197864832 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3731144675817853908} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 9104126690634640699} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2021814114125571078 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3731144675817853908} + m_CullTransparentMesh: 1 +--- !u!114 &6305135970340749138 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3731144675817853908} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Text copied + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 6708c7eadd49b49f4ac3469e5104e7c9, type: 2} + m_sharedMaterial: {fileID: 2100000, guid: dd1effe058ec94479a0dd10765262662, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294769916 + m_fontColor: {r: 0.9882353, g: 0.9882353, b: 0.9882353, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &7697667428819382269 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1948285205173353527} + - component: {fileID: 5781213084053705295} + - component: {fileID: 5933496341342518365} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1948285205173353527 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7697667428819382269} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 9104126690634640699} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5781213084053705295 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7697667428819382269} + m_CullTransparentMesh: 1 +--- !u!114 &5933496341342518365 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7697667428819382269} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.08627451, g: 0.08235294, b: 0.09411765, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f02af068e11cb4902a1a4faad10b890a, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 2.5 +--- !u!1 &7841483112454866825 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9104126690634640699} + - component: {fileID: 4638086100288006376} + - component: {fileID: 4658966891920265783} + m_Layer: 5 + m_Name: TextCopiedToast + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9104126690634640699 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7841483112454866825} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1948285205173353527} + - {fileID: 910873934197864832} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 157.1, y: 0.29993057} + m_SizeDelta: {x: 126, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!225 &4638086100288006376 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7841483112454866825} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!114 &4658966891920265783 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7841483112454866825} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d8b939b5bedb9494b806609faeda7d8d, type: 3} + m_Name: + m_EditorClassIdentifier: + hideOnEnable: 1 + animSpeedFactor: 1 + disableAfterFadeOut: 1 + canvasGroup: {fileID: 0} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NotificationHUD/Prefabs/TextCopiedToast.prefab.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NotificationHUD/Prefabs/TextCopiedToast.prefab.meta new file mode 100644 index 0000000000..b9cf69aaab --- /dev/null +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NotificationHUD/Prefabs/TextCopiedToast.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 69d18becfc9ef4b7f92abaeae62a2ece +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: From d3808b527f11a07e24535b669afc4e6775a66468 Mon Sep 17 00:00:00 2001 From: Nicolas Lorusso Date: Wed, 26 Jul 2023 15:53:12 -0300 Subject: [PATCH 09/24] integrated toast & copy icon to user contextual menu --- .../Controllers/HUD/Minimap/MinimapHUDView.cs | 5 +- .../UserContextMenuPanel Variant.prefab | 4 +- .../UserContextMenuPanel.prefab | 175 ++++++++++++++++-- .../Scripts/UserContextMenu.asmdef | 3 +- .../Scripts/UserContextMenu.cs | 5 + 5 files changed, 167 insertions(+), 25 deletions(-) diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDView.cs index f7b9968182..d5fbd12471 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/MinimapHUDView.cs @@ -1,9 +1,6 @@ -using Cysharp.Threading.Tasks; -using System; using DCL; -using DCL.Tasks; using DCLServices.MapRendererV2.ConsumerUtils; -using System.Threading; +using System; using TMPro; using UnityEngine; using UnityEngine.UI; diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Prefabs/UserContextMenuPanel Variant.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Prefabs/UserContextMenuPanel Variant.prefab index 9f25950a98..7c72b22866 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Prefabs/UserContextMenuPanel Variant.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Prefabs/UserContextMenuPanel Variant.prefab @@ -466,7 +466,7 @@ PrefabInstance: - target: {fileID: 4733887283956242434, guid: 15120eceeeb9c45ee9d520a23f50872d, type: 3} propertyPath: m_IsActive - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 4998034079656445918, guid: 15120eceeeb9c45ee9d520a23f50872d, type: 3} @@ -931,7 +931,7 @@ PrefabInstance: - target: {fileID: 8859036475654810075, guid: 15120eceeeb9c45ee9d520a23f50872d, type: 3} propertyPath: m_IsActive - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 8987714422498632940, guid: 15120eceeeb9c45ee9d520a23f50872d, type: 3} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab index dae79c756b..28116eb5b2 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab @@ -20,7 +20,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!224 &9109606891818156669 RectTransform: m_ObjectHideFlags: 0 @@ -1835,6 +1835,7 @@ MonoBehaviour: messageButton: {fileID: 112276539412484646} mentionButton: {fileID: 8241268633951141713} copyNameButton: {fileID: 6339934257423045804} + nameCopiedToast: {fileID: 6177229564709651564} --- !u!222 &1477505211059433124 CanvasRenderer: m_ObjectHideFlags: 0 @@ -2114,9 +2115,9 @@ MonoBehaviour: serializedVersion: 2 rgba: 4294967295 m_fontSize: 15 - m_fontSizeBase: 20 + m_fontSizeBase: 15 m_fontWeight: 400 - m_enableAutoSizing: 1 + m_enableAutoSizing: 0 m_fontSizeMin: 10 m_fontSizeMax: 15 m_fontStyle: 0 @@ -2131,7 +2132,7 @@ MonoBehaviour: m_charWidthMaxAdj: 0 m_TextWrappingMode: 1 m_wordWrappingRatios: 0.4 - m_overflowMode: 0 + m_overflowMode: 1 m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 @@ -2150,7 +2151,7 @@ MonoBehaviour: m_VertexBufferAutoSizeReduction: 1 m_useMaxVisibleDescender: 1 m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0.000045776367, w: 0} + m_margin: {x: 25, y: 0, z: 25, w: 0} m_isUsingLegacyAnimationComponent: 0 m_isVolumetricText: 0 m_hasFontAssetChanged: 0 @@ -2193,7 +2194,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 94, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1914175504407361972 @@ -2288,7 +2289,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!224 &3815080001497336462 RectTransform: m_ObjectHideFlags: 0 @@ -3476,15 +3477,16 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 7729952426779212640} m_Father: {fileID: 8489894846506230600} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0.0000076293945} + m_SizeDelta: {x: 18, y: 18.000004} + m_Pivot: {x: 1, y: 0.5} --- !u!222 &3788426832314858658 CanvasRenderer: m_ObjectHideFlags: 0 @@ -3506,16 +3508,16 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.16862746} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 + m_Sprite: {fileID: 21300000, guid: 09d7c763693b246d7bdb6df137a6f0cc, type: 3} + m_Type: 0 + m_PreserveAspect: 1 m_FillCenter: 1 m_FillMethod: 4 m_FillAmount: 1 @@ -4195,7 +4197,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!224 &5191761706286609472 RectTransform: m_ObjectHideFlags: 0 @@ -4606,3 +4608,140 @@ MonoBehaviour: m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 m_ReverseArrangement: 0 +--- !u!1001 &1521675970849396315 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3523302219020209382} + m_Modifications: + - target: {fileID: 7841483112454866825, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_Name + value: TextCopiedToast + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_SizeDelta.x + value: 126 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 69.29 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0.0000038147 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 69d18becfc9ef4b7f92abaeae62a2ece, type: 3} +--- !u!114 &6177229564709651564 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4658966891920265783, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + m_PrefabInstance: {fileID: 1521675970849396315} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d8b939b5bedb9494b806609faeda7d8d, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &7729952426779212640 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + m_PrefabInstance: {fileID: 1521675970849396315} + m_PrefabAsset: {fileID: 0} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Scripts/UserContextMenu.asmdef b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Scripts/UserContextMenu.asmdef index cf494ae5aa..32a8e357e1 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Scripts/UserContextMenu.asmdef +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Scripts/UserContextMenu.asmdef @@ -19,7 +19,8 @@ "GUID:2995626b54c60644988f134a69a77450", "GUID:4d3366a36e77f41cfb7436340334e236", "GUID:e5b8a8ed154ad624f99bcb73d3284a90", - "GUID:2ce94b4811f2a4b9b8dfd650158f7796" + "GUID:2ce94b4811f2a4b9b8dfd650158f7796", + "GUID:555c1f3c6d18648df910b7a1de75b424" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Scripts/UserContextMenu.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Scripts/UserContextMenu.cs index f5d1801c87..0f27111286 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Scripts/UserContextMenu.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Scripts/UserContextMenu.cs @@ -72,6 +72,9 @@ public enum MenuConfigFlags [SerializeField] internal Button mentionButton; [SerializeField] internal Button copyNameButton; + [Header("Misc")] + [SerializeField] private ShowHideAnimator nameCopiedToast; + public static event Action OnOpenPrivateChatRequest; public bool isVisible => gameObject.activeSelf; @@ -520,6 +523,8 @@ private static void ShowUserNotificationError(string userIdOrName) private void OnCopyNameButtonPressed() { clipboard.WriteText(userName.text); + nameCopiedToast.gameObject.SetActive(true); + nameCopiedToast.ShowDelayHide(3); } #if UNITY_EDITOR From e2b9e09cc3b51acc94f603a5e35405da8eed0c15 Mon Sep 17 00:00:00 2001 From: Nicolas Lorusso Date: Wed, 26 Jul 2023 16:10:04 -0300 Subject: [PATCH 10/24] integrated toast for copying the channel name from the context menu --- .../ChannelOptionsContextualMenu.prefab | 181 ++++++++++++++++-- .../ChannelContextualMenu.cs | 9 +- 2 files changed, 175 insertions(+), 15 deletions(-) diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/ChannelOptionsContextualMenu.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/ChannelOptionsContextualMenu.prefab index f88d3c3752..a783c545b7 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/ChannelOptionsContextualMenu.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/ChannelOptionsContextualMenu.prefab @@ -530,6 +530,7 @@ GameObject: - component: {fileID: 4612255660624800238} - component: {fileID: 5753878300756819366} - component: {fileID: 1554500157158794989} + - component: {fileID: 6032508031596827222} m_Layer: 19 m_Name: Title m_TagString: Untagged @@ -548,14 +549,15 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 9122324151661324192} m_Father: {fileID: 7642772491782127286} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchoredPosition: {x: -11.5, y: 0} + m_SizeDelta: {x: -77.92, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5753878300756819366 CanvasRenderer: @@ -655,6 +657,19 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &6032508031596827222 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4065590206803513087} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f360e049965940489fbd5c4bff346c54, type: 3} + m_Name: + m_EditorClassIdentifier: + maxWidth: 150 --- !u!1 &4909810708293099313 GameObject: m_ObjectHideFlags: 0 @@ -796,6 +811,7 @@ MonoBehaviour: leaveButton: {fileID: 8226501301996722826} closeButton: {fileID: 656189215279522018} copyNameButton: {fileID: 2485679116509274476} + nameCopiedToast: {fileID: 6470080959686123299} --- !u!1 &6047383843708260466 GameObject: m_ObjectHideFlags: 0 @@ -825,7 +841,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 4612255660624800238} - - {fileID: 9122324151661324192} m_Father: {fileID: 7941206006464160925} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -1000,15 +1015,16 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 7642772491782127286} - m_RootOrder: 1 + m_Children: + - {fileID: 7437126419404333103} + m_Father: {fileID: 4612255660624800238} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 1, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: -21.3, y: 0} - m_SizeDelta: {x: 25, y: 25} - m_Pivot: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 5, y: 0} + m_SizeDelta: {x: 18, y: 18} + m_Pivot: {x: 0, y: 0.5} --- !u!222 &8495232716962834360 CanvasRenderer: m_ObjectHideFlags: 0 @@ -1030,16 +1046,16 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 1, g: 1, b: 1, a: 0.20784314} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 + m_Sprite: {fileID: 21300000, guid: 09d7c763693b246d7bdb6df137a6f0cc, type: 3} + m_Type: 0 + m_PreserveAspect: 1 m_FillCenter: 1 m_FillMethod: 4 m_FillAmount: 1 @@ -1091,3 +1107,140 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: [] +--- !u!1001 &1832298668647681300 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 9122324151661324192} + m_Modifications: + - target: {fileID: 7841483112454866825, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_Name + value: TextCopiedToast + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_SizeDelta.x + value: 126 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 85.27 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0.0000038147 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 69d18becfc9ef4b7f92abaeae62a2ece, type: 3} +--- !u!114 &6470080959686123299 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4658966891920265783, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + m_PrefabInstance: {fileID: 1832298668647681300} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d8b939b5bedb9494b806609faeda7d8d, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &7437126419404333103 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + m_PrefabInstance: {fileID: 1832298668647681300} + m_PrefabAsset: {fileID: 0} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelContextualMenu.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelContextualMenu.cs index 008c042f00..ddf662daec 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelContextualMenu.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelContextualMenu.cs @@ -18,6 +18,7 @@ internal enum Options [SerializeField] internal Button leaveButton; [SerializeField] internal Button closeButton; [SerializeField] internal Button copyNameButton; + [SerializeField] internal ShowHideAnimator nameCopiedToast; public event Action OnLeave; public event Action OnNameCopied; @@ -33,7 +34,13 @@ public override void Awake() }); closeButton.onClick.AddListener(() => Hide()); - copyNameButton.onClick.AddListener(() => OnNameCopied?.Invoke(headerTiler.text)); + copyNameButton.onClick.AddListener(() => + { + OnNameCopied?.Invoke(headerTiler.text); + + nameCopiedToast.gameObject.SetActive(true); + nameCopiedToast.ShowDelayHide(3); + }); RefreshControl(); } From b007b16827f7cbd3fde6942d7722ffbed98d31c6 Mon Sep 17 00:00:00 2001 From: Nicolas Lorusso Date: Wed, 26 Jul 2023 17:02:25 -0300 Subject: [PATCH 11/24] integrated toast & button to chat entries --- .../HUD/ChatWidgetHUD/ChatHUDController.cs | 1 - .../HUD/ChatWidgetHUD/DefaultChatEntry.cs | 54 ++- .../Tests/ChatHUDControllerShould.cs | 6 +- .../SocialBarPrefabs/Chat/ChatEntry.prefab | 403 +++++++++++++++++- .../Prefabs/PublicChatEntrySent.prefab | 22 +- .../Prefabs/PublicChatEntrySentWhisper.prefab | 22 +- 6 files changed, 478 insertions(+), 30 deletions(-) diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatHUDController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatHUDController.cs index 5a981c6975..e698b00646 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatHUDController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatHUDController.cs @@ -525,7 +525,6 @@ private void HideMentionSuggestions() private void HandleCopyMessageToClipboard(ChatEntryModel model) { clipboard.WriteText(ChatUtils.RemoveNoParse(model.bodyText)); - dataStore.notifications.DefaultErrorNotification.Set("Text copied", true); } } } diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/DefaultChatEntry.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/DefaultChatEntry.cs index f3b88d9217..60f4585d9e 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/DefaultChatEntry.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/DefaultChatEntry.cs @@ -35,9 +35,12 @@ public DateTime GetLocalTime(ulong timestamp) => [SerializeField] internal bool showUserName = true; [SerializeField] private RectTransform hoverPanelPositionReference; [SerializeField] private RectTransform contextMenuPositionReference; + [SerializeField] private RectTransform copyBodyPositionReference; [SerializeField] private MentionLinkDetector mentionLinkDetector; [SerializeField] private Color autoMentionBackgroundColor; [SerializeField] private Image backgroundImage; + [SerializeField] private Button copyBodyButton; + [SerializeField] private ShowHideAnimator bodyCopiedToast; private float hoverPanelTimer; private float hoverGotoPanelTimer; @@ -74,6 +77,31 @@ public override string HoverString public void Awake() { initialEntryColor = backgroundImage.color; + + copyBodyButton.onClick.AddListener(() => + { + OnCopyClicked?.Invoke(this); + bodyCopiedToast.gameObject.SetActive(true); + bodyCopiedToast.ShowDelayHide(3); + }); + } + + private void OnEnable() + { + copyBodyButton.gameObject.SetActive(false); + } + + private void OnDisable() + { + OnPointerExit(null); + } + + private void OnDestroy() + { + populationTaskCancellationTokenSource.Cancel(); + + if (mentionLinkDetector != null) + mentionLinkDetector.OnPlayerMentioned -= OnPlayerMentioned; } public override void Populate(ChatEntryModel chatEntryModel) => @@ -83,7 +111,7 @@ private async UniTask PopulateTask(ChatEntryModel chatEntryModel, CancellationTo { model = chatEntryModel; - if (chatEntryModel is {subType: ChatEntryModel.SubType.RECEIVED, messageType: ChatMessage.Type.PUBLIC }) + if (chatEntryModel is { subType: ChatEntryModel.SubType.RECEIVED, messageType: ChatMessage.Type.PUBLIC }) backgroundImage.color = initialEntryColor; chatEntryModel.bodyText = body.ReplaceUnsupportedCharacters(chatEntryModel.bodyText, '?'); @@ -209,11 +237,7 @@ public void OnPointerClick(PointerEventData pointerEventData) int linkIndex = TMP_TextUtilities.FindIntersectingLink(body, pointerEventData.position, body.canvas.worldCamera); - if (linkIndex == -1) - { - OnCopyClicked?.Invoke(this); - return; - } + if (linkIndex == -1) return; string link = body.textInfo.linkInfo[linkIndex].GetLinkID(); @@ -233,6 +257,10 @@ public void OnPointerEnter(PointerEventData pointerEventData) return; hoverPanelTimer = timeToHoverPanel; + copyBodyButton.gameObject.SetActive(true); + var copyBodyButtonTransform = (RectTransform)copyBodyButton.transform; + copyBodyButtonTransform.pivot = copyBodyPositionReference.pivot; + copyBodyButtonTransform.position = copyBodyPositionReference.position; } public void OnPointerExit(PointerEventData pointerEventData) @@ -241,6 +269,7 @@ public void OnPointerExit(PointerEventData pointerEventData) return; hoverPanelTimer = 0f; + copyBodyButton.gameObject.SetActive(false); var linkIndex = TMP_TextUtilities.FindIntersectingLink(body, pointerEventData.position, @@ -256,19 +285,6 @@ public void OnPointerExit(PointerEventData pointerEventData) OnCancelHover?.Invoke(); } - private void OnDisable() - { - OnPointerExit(null); - } - - private void OnDestroy() - { - populationTaskCancellationTokenSource.Cancel(); - - if (mentionLinkDetector != null) - mentionLinkDetector.OnPlayerMentioned -= OnPlayerMentioned; - } - public override void SetFadeout(bool enabled) { if (enabled) return; diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/ChatHUDControllerShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/ChatHUDControllerShould.cs index 9d03988f85..9ca5807ea3 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/ChatHUDControllerShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/Tests/ChatHUDControllerShould.cs @@ -516,14 +516,11 @@ public IEnumerator ApplyEllipsisFormatWhenProfileIsMissing() => }); [UnityTest] - public IEnumerator CopyToClipboardMessageTextAndDisplayNotification() => + public IEnumerator CopyToClipboardMessageText() => UniTask.ToCoroutine(async () => { const string BODY_TEXT = "any useful body message with @mentions and #channels"; - var notification = ""; - dataStore.notifications.DefaultErrorNotification.OnChange += (current, _) => notification = current; - view.OnCopyMessageRequested += Raise.Event>(new ChatEntryModel { messageType = ChatMessage.Type.PUBLIC, @@ -532,7 +529,6 @@ public IEnumerator CopyToClipboardMessageTextAndDisplayNotification() => }); clipboard.Received(1).WriteText(BODY_TEXT); - Assert.AreEqual("Text copied", notification); }); private UserProfile GivenProfile(string userId, string username, string face256) diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/Chat/ChatEntry.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/Chat/ChatEntry.prefab index 30c85fe15c..e3457a54eb 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/Chat/ChatEntry.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/Chat/ChatEntry.prefab @@ -1,5 +1,62 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &959047228455682457 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2344650524825034182} + - component: {fileID: 2510838762651707142} + m_Layer: 5 + m_Name: CopyBodyPosReference + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2344650524825034182 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 959047228455682457} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6123622130895115053} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 5, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &2510838762651707142 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 959047228455682457} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 --- !u!1 &1147357153650870356 GameObject: m_ObjectHideFlags: 0 @@ -94,6 +151,7 @@ GameObject: - component: {fileID: 8041991267711887529} - component: {fileID: 7336000302445337154} - component: {fileID: -2281352007695473291} + - component: {fileID: 373585087170550111} m_Layer: 5 m_Name: ChatEntry m_TagString: Untagged @@ -143,10 +201,12 @@ MonoBehaviour: showUserName: 1 hoverPanelPositionReference: {fileID: 1110658662034786025} contextMenuPositionReference: {fileID: 650554326901945825} + copyBodyPositionReference: {fileID: 2344650524825034182} mentionLinkDetector: {fileID: 9011161838670949205} autoMentionBackgroundColor: {r: 1, g: 0.9921569, b: 0.85098046, a: 1} backgroundImage: {fileID: 7437960684281325092} - ownUserProfile: {fileID: 11400000, guid: 25aec1357b37f3146b4dc1588cd4d1ca, type: 2} + copyBodyButton: {fileID: 1428625465161831531} + bodyCopiedToast: {fileID: 3478326582210380100} --- !u!114 &1514739545556520801 MonoBehaviour: m_ObjectHideFlags: 0 @@ -173,7 +233,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: textComponent: {fileID: 8068759164719752186} - ownUserProfile: {fileID: 11400000, guid: 25aec1357b37f3146b4dc1588cd4d1ca, type: 2} --- !u!114 &8041991267711887529 MonoBehaviour: m_ObjectHideFlags: 0 @@ -220,6 +279,36 @@ CanvasGroup: m_Interactable: 1 m_BlocksRaycasts: 1 m_IgnoreParentGroups: 0 +--- !u!114 &373585087170550111 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2387707094095225561} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &3907704211924857044 GameObject: m_ObjectHideFlags: 0 @@ -343,7 +432,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: + m_text: message m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: a02669827dd9144f39b4b164e753a21a, type: 2} m_sharedMaterial: {fileID: 2100000, guid: 74b83fa9a54124695b9bdd8bea96fa17, type: 2} @@ -470,6 +559,149 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 +--- !u!1 &5656691516279895309 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5468237727077107961} + - component: {fileID: 8020736798529244454} + - component: {fileID: 3613284109973235132} + - component: {fileID: 1428625465161831531} + - component: {fileID: 975921391264126493} + m_Layer: 5 + m_Name: CopyBodyButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5468237727077107961 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5656691516279895309} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1061403454639603272} + m_Father: {fileID: 6123622130895115053} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 5, y: 0} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &8020736798529244454 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5656691516279895309} + m_CullTransparentMesh: 1 +--- !u!114 &3613284109973235132 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5656691516279895309} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.4245283, g: 0.4245283, b: 0.4245283, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 09d7c763693b246d7bdb6df137a6f0cc, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1428625465161831531 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5656691516279895309} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3613284109973235132} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &975921391264126493 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5656691516279895309} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 --- !u!1 &7075606557539565290 GameObject: m_ObjectHideFlags: 0 @@ -502,6 +734,8 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 4315294092968244398} + - {fileID: 2344650524825034182} + - {fileID: 5468237727077107961} m_Father: {fileID: 4919932192753732469} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -574,3 +808,166 @@ MonoBehaviour: m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 m_ReverseArrangement: 0 +--- !u!1001 &8134211403948249971 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5468237727077107961} + m_Modifications: + - target: {fileID: 7841483112454866825, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_Name + value: TextCopiedToast + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_SizeDelta.x + value: 126 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 3.1400146 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 69d18becfc9ef4b7f92abaeae62a2ece, type: 3} +--- !u!224 &1061403454639603272 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + m_PrefabInstance: {fileID: 8134211403948249971} + m_PrefabAsset: {fileID: 0} +--- !u!1 &2031138226132784378 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7841483112454866825, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + m_PrefabInstance: {fileID: 8134211403948249971} + m_PrefabAsset: {fileID: 0} +--- !u!114 &2855780899079086603 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2031138226132784378} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &3478326582210380100 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4658966891920265783, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + m_PrefabInstance: {fileID: 8134211403948249971} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2031138226132784378} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d8b939b5bedb9494b806609faeda7d8d, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/PublicChatEntrySent.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/PublicChatEntrySent.prefab index c4444ae5df..4ba0eef4c9 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/PublicChatEntrySent.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/PublicChatEntrySent.prefab @@ -57,6 +57,26 @@ PrefabInstance: propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} + - target: {fileID: 2344650524825034182, guid: c419563788ffdbc44a53495651162084, + type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2344650524825034182, guid: c419563788ffdbc44a53495651162084, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2344650524825034182, guid: c419563788ffdbc44a53495651162084, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2344650524825034182, guid: c419563788ffdbc44a53495651162084, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -5 + objectReference: {fileID: 0} - target: {fileID: 2387707094095225561, guid: c419563788ffdbc44a53495651162084, type: 3} propertyPath: m_Name @@ -132,7 +152,7 @@ PrefabInstance: - target: {fileID: 4919932192753732469, guid: c419563788ffdbc44a53495651162084, type: 3} propertyPath: m_AnchoredPosition.x - value: 1280 + value: 794 objectReference: {fileID: 0} - target: {fileID: 4919932192753732469, guid: c419563788ffdbc44a53495651162084, type: 3} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/PublicChatEntrySentWhisper.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/PublicChatEntrySentWhisper.prefab index e4fc5624e0..3c9eb1566a 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/PublicChatEntrySentWhisper.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/PublicChatEntrySentWhisper.prefab @@ -47,6 +47,26 @@ PrefabInstance: propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} + - target: {fileID: 2344650524825034182, guid: c419563788ffdbc44a53495651162084, + type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2344650524825034182, guid: c419563788ffdbc44a53495651162084, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2344650524825034182, guid: c419563788ffdbc44a53495651162084, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2344650524825034182, guid: c419563788ffdbc44a53495651162084, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -5 + objectReference: {fileID: 0} - target: {fileID: 2387707094095225561, guid: c419563788ffdbc44a53495651162084, type: 3} propertyPath: m_Name @@ -130,7 +150,7 @@ PrefabInstance: - target: {fileID: 4919932192753732469, guid: c419563788ffdbc44a53495651162084, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 794 objectReference: {fileID: 0} - target: {fileID: 4919932192753732469, guid: c419563788ffdbc44a53495651162084, type: 3} From 2c04913959dbb36e3b318a9966e6982733025455 Mon Sep 17 00:00:00 2001 From: Nicolas Lorusso Date: Wed, 26 Jul 2023 17:02:59 -0300 Subject: [PATCH 12/24] missing PrivateChatEntrySent.prefab --- .../Prefabs/PrivateChatEntrySent.prefab | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/PrivateChatEntrySent.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/PrivateChatEntrySent.prefab index aa22c2a5a6..d918ec0aae 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/PrivateChatEntrySent.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/PrivateChatEntrySent.prefab @@ -57,6 +57,26 @@ PrefabInstance: propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} + - target: {fileID: 2344650524825034182, guid: c419563788ffdbc44a53495651162084, + type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2344650524825034182, guid: c419563788ffdbc44a53495651162084, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2344650524825034182, guid: c419563788ffdbc44a53495651162084, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2344650524825034182, guid: c419563788ffdbc44a53495651162084, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -5 + objectReference: {fileID: 0} - target: {fileID: 2387707094095225561, guid: c419563788ffdbc44a53495651162084, type: 3} propertyPath: m_Name @@ -115,7 +135,7 @@ PrefabInstance: - target: {fileID: 4919932192753732469, guid: c419563788ffdbc44a53495651162084, type: 3} propertyPath: m_AnchoredPosition.x - value: 1223 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4919932192753732469, guid: c419563788ffdbc44a53495651162084, type: 3} From 8a784843a75948d09ad03c0e497c070d2962b2a9 Mon Sep 17 00:00:00 2001 From: Nicolas Lorusso Date: Wed, 26 Jul 2023 17:38:27 -0300 Subject: [PATCH 13/24] added @ at the beginning of the name to be copied --- .../DCL/Controllers/UserContextMenu/Scripts/UserContextMenu.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Scripts/UserContextMenu.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Scripts/UserContextMenu.cs index 0f27111286..f1a377ea8a 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Scripts/UserContextMenu.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Scripts/UserContextMenu.cs @@ -522,7 +522,7 @@ private static void ShowUserNotificationError(string userIdOrName) private void OnCopyNameButtonPressed() { - clipboard.WriteText(userName.text); + clipboard.WriteText($"@{userName.text}"); nameCopiedToast.gameObject.SetActive(true); nameCopiedToast.ShowDelayHide(3); } From 5a16e6ce76ff5d13676f7f5465a55e5ee6f07c70 Mon Sep 17 00:00:00 2001 From: Nicolas Lorusso Date: Wed, 26 Jul 2023 17:54:49 -0300 Subject: [PATCH 14/24] integrated hover & click sound --- .../HUD/Minimap/Resources/MinimapHUD.prefab | 17 ++++++++++++ .../SocialBarPrefabs/Chat/ChatEntry.prefab | 17 ++++++++++++ .../ChannelOptionsContextualMenu.prefab | 17 ++++++++++++ .../UserContextMenuPanel.prefab | 27 +++++++++++++++---- 4 files changed, 73 insertions(+), 5 deletions(-) diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab index c1447bc44f..0c5a3721ee 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab @@ -3000,6 +3000,7 @@ GameObject: - component: {fileID: 3714597375162625211} - component: {fileID: 6092858593562593927} - component: {fileID: 5985667873791372442} + - component: {fileID: 3211705795413414728} m_Layer: 5 m_Name: CopyLocationButton m_TagString: Untagged @@ -3109,6 +3110,22 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: [] +--- !u!114 &3211705795413414728 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7290631435154145140} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4bfd0d144b6d3dd438b84fa14a062c4f, type: 3} + m_Name: + m_EditorClassIdentifier: + playHover: 1 + playClick: 1 + playRelease: 1 + extraClickEvent: {fileID: 0} --- !u!1 &7369622533085329868 GameObject: m_ObjectHideFlags: 0 diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/Chat/ChatEntry.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/Chat/ChatEntry.prefab index e3457a54eb..ca809d6b02 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/Chat/ChatEntry.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/Chat/ChatEntry.prefab @@ -572,6 +572,7 @@ GameObject: - component: {fileID: 3613284109973235132} - component: {fileID: 1428625465161831531} - component: {fileID: 975921391264126493} + - component: {fileID: 2877273718104557471} m_Layer: 5 m_Name: CopyBodyButton m_TagString: Untagged @@ -702,6 +703,22 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 +--- !u!114 &2877273718104557471 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5656691516279895309} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4bfd0d144b6d3dd438b84fa14a062c4f, type: 3} + m_Name: + m_EditorClassIdentifier: + playHover: 1 + playClick: 1 + playRelease: 1 + extraClickEvent: {fileID: 0} --- !u!1 &7075606557539565290 GameObject: m_ObjectHideFlags: 0 diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/ChannelOptionsContextualMenu.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/ChannelOptionsContextualMenu.prefab index a783c545b7..143483398b 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/ChannelOptionsContextualMenu.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/ChannelOptionsContextualMenu.prefab @@ -997,6 +997,7 @@ GameObject: - component: {fileID: 8495232716962834360} - component: {fileID: 5547558713592519961} - component: {fileID: 2485679116509274476} + - component: {fileID: 588183490680869518} m_Layer: 19 m_Name: CopyNameButton m_TagString: Untagged @@ -1107,6 +1108,22 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: [] +--- !u!114 &588183490680869518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7780234006924259851} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4bfd0d144b6d3dd438b84fa14a062c4f, type: 3} + m_Name: + m_EditorClassIdentifier: + playHover: 1 + playClick: 1 + playRelease: 1 + extraClickEvent: {fileID: 0} --- !u!1001 &1832298668647681300 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab index 28116eb5b2..eac3fb1468 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab @@ -20,7 +20,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &9109606891818156669 RectTransform: m_ObjectHideFlags: 0 @@ -1081,7 +1081,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!224 &4678502028939231263 RectTransform: m_ObjectHideFlags: 0 @@ -2194,7 +2194,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchoredPosition: {x: 94, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1914175504407361972 @@ -2289,7 +2289,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &3815080001497336462 RectTransform: m_ObjectHideFlags: 0 @@ -3459,6 +3459,7 @@ GameObject: - component: {fileID: 6310974042850775004} - component: {fileID: 6339934257423045804} - component: {fileID: 2217533867784455526} + - component: {fileID: 9081891562276683500} m_Layer: 19 m_Name: CopyNameButton m_TagString: Untagged @@ -3589,6 +3590,22 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 +--- !u!114 &9081891562276683500 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7563150208401243404} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4bfd0d144b6d3dd438b84fa14a062c4f, type: 3} + m_Name: + m_EditorClassIdentifier: + playHover: 1 + playClick: 1 + playRelease: 1 + extraClickEvent: {fileID: 0} --- !u!1 &7649088973599571615 GameObject: m_ObjectHideFlags: 0 @@ -4197,7 +4214,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &5191761706286609472 RectTransform: m_ObjectHideFlags: 0 From 6b49da6b643100389ac323a8dfa43fd4744b4016 Mon Sep 17 00:00:00 2001 From: Nicolas Lorusso Date: Fri, 28 Jul 2023 10:52:59 -0300 Subject: [PATCH 15/24] implemented copy of profile description --- .../IPassportNavigationComponentView.cs | 1 + .../PassportNavigationComponentController.cs | 20 +- .../PassportNavigationComponentView.cs | 26 +-- .../Passport/Passport/PlayerPassportPlugin.cs | 6 +- .../HUD/Passport/PassportHUD.asmdef | 3 +- .../Passport/Resources/PlayerPassport.prefab | 217 +++++++++++++++--- .../Tests/PassportHUDControllerShould.cs | 3 +- 7 files changed, 223 insertions(+), 53 deletions(-) diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Passport/PassportNavigation/IPassportNavigationComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Passport/PassportNavigation/IPassportNavigationComponentView.cs index 08bccebe04..53f475be7a 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Passport/PassportNavigation/IPassportNavigationComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Passport/PassportNavigation/IPassportNavigationComponentView.cs @@ -12,6 +12,7 @@ public interface IPassportNavigationComponentView event Action OnClickCollectibles; event Action OnClickedViewAll; event Action OnClickDescriptionCoordinates; + event Action OnCopyDescription; void InitializeView(); void SetGuestUser(bool isGuest); void SetName(string username); diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Passport/PassportNavigation/PassportNavigationComponentController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Passport/PassportNavigation/PassportNavigationComponentController.cs index 4b2fec40be..25a333a074 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Passport/PassportNavigation/PassportNavigationComponentController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Passport/PassportNavigation/PassportNavigationComponentController.cs @@ -28,6 +28,7 @@ public class PassportNavigationComponentController : IDisposable private readonly DataStore dataStore; private readonly ViewAllComponentController viewAllController; private readonly IAdditionalInfoFieldIconProvider additionalInfoFieldIconProvider; + private readonly IClipboard clipboard; private readonly Regex linksRegex = new (@"\[(.*?)\]\((.*?)\)", RegexOptions.Multiline); private readonly List<(Sprite logo, string title, string value)> additionalFields = new (); private readonly List links = new (); @@ -57,7 +58,8 @@ public PassportNavigationComponentController( IUserProfileBridge userProfileBridge, DataStore dataStore, ViewAllComponentController viewAllController, - IAdditionalInfoFieldIconProvider additionalInfoFieldIconProvider) + IAdditionalInfoFieldIconProvider additionalInfoFieldIconProvider, + IClipboard clipboard) { const string NAME_TYPE = "name"; const string PARCEL_TYPE = "parcel"; @@ -74,11 +76,13 @@ public PassportNavigationComponentController( this.dataStore = dataStore; this.viewAllController = viewAllController; this.additionalInfoFieldIconProvider = additionalInfoFieldIconProvider; + this.clipboard = clipboard; view.OnClickBuyNft += (wearableId, wearableType) => OnClickBuyNft?.Invoke(wearableType is NAME_TYPE or PARCEL_TYPE or ESTATE_TYPE ? currentUserId : wearableId, wearableType); view.OnClickCollectibles += () => OnClickCollectibles?.Invoke(); view.OnClickedViewAll += ClickedViewAll; view.OnClickDescriptionCoordinates += OpenGoToPanel; + view.OnCopyDescription += CopyDescriptionToClipboard; viewAllController.OnBackFromViewAll += BackFromViewAll; viewAllController.OnClickBuyNft += (nftId) => OnClickBuyNft?.Invoke(nftId.Category is NAME_TYPE or PARCEL_TYPE or ESTATE_TYPE ? currentUserId : nftId.Id, nftId.Category); } @@ -93,7 +97,6 @@ private void ClickedViewAll(PassportSection section) view.CloseAllSections(); viewAllController.SetViewAllVisibility(true); viewAllController.OpenViewAllSection(section); - } public void UpdateWithUserProfile(UserProfile userProfile) @@ -411,7 +414,7 @@ private void CloseUIFromGoToPanel(bool confirmed, bool _) dataStore.HUDs.currentPlayerId.Set((null, null)); } - private string ExtractLinks(string description, ICollection linkBuffer) + private string ExtractLinks(string description, ICollection linkBuffer = null) { MatchCollection matches = linksRegex.Matches(description); @@ -419,11 +422,20 @@ private string ExtractLinks(string description, ICollection OnClickBuyNft; @@ -97,6 +98,7 @@ public class PassportNavigationComponentView : BaseComponentView, IPassportNavig public event Action OnClickCollectibles; public event Action OnClickedViewAll; public event Action OnClickDescriptionCoordinates; + public event Action OnCopyDescription; private const string NFT_ICON_POOL_NAME_PREFIX = "NFTIconsEntriesPool_Passport_"; private const string NFT_PAGES_POOL_NAME_PREFIX = "NFTPagesEntriesPool_Passport_"; @@ -135,10 +137,11 @@ public void Start() nftLandsScrollRect.onValueChanged.AddListener((pos) => CloseAllNFTItemInfos()); collectiblesMainScrollRect.onValueChanged.AddListener((pos) => CloseAllNFTItemInfos()); - viewAllWearables.onClick.AddListener(()=>OpenViewAllSection(PassportSection.Wearables)); - viewAllEmotes.onClick.AddListener(()=>OpenViewAllSection(PassportSection.Emotes)); - viewAllNAMEs.onClick.AddListener(()=>OpenViewAllSection(PassportSection.Names)); - viewAllLANDs.onClick.AddListener(()=>OpenViewAllSection(PassportSection.Lands)); + viewAllWearables.onClick.AddListener(() => OpenViewAllSection(PassportSection.Wearables)); + viewAllEmotes.onClick.AddListener(() => OpenViewAllSection(PassportSection.Emotes)); + viewAllNAMEs.onClick.AddListener(() => OpenViewAllSection(PassportSection.Names)); + viewAllLANDs.onClick.AddListener(() => OpenViewAllSection(PassportSection.Lands)); + copyDescriptionButton.onClick.AddListener(() => OnCopyDescription?.Invoke()); descriptionText.SubscribeToClickEvents(OnDescriptionClicked); nftWearablesPagesEntryPool = GetNftPagesEntryPool(NFT_PAGES_POOL_NAME_PREFIX + "Wearables"); @@ -628,10 +631,7 @@ private static NFTIconComponentModel[] CreateNamePageElements(NamesResponse.Name nftInfo = names[i + j].GetNftInfo(), }; } - else - { - pageElements[j] = null; - } + else { pageElements[j] = null; } } return pageElements; @@ -652,7 +652,7 @@ private NftPageView CreateWearablePageView(WearableItem[] wearables, int i) { if (wearables.Length > i + j && wearables[i + j] != null) { - pageElements[j] = new() + pageElements[j] = new () { showMarketplaceButton = true, showType = true, @@ -663,6 +663,7 @@ private NftPageView CreateWearablePageView(WearableItem[] wearables, int i) imageURI = wearables[i + j].ComposeThumbnailUrl(), nftInfo = wearables[i + j].GetNftInfo(), }; + wearableItemsForThisPage[j] = wearables[i + j]; } else @@ -738,7 +739,7 @@ private NftPageView CreateLandPageView(LandsResponse.LandEntry[] lands, int i) { if (lands.Length > i + j && lands[i + j] != null) { - pageElements[j] = new() + pageElements[j] = new () { showMarketplaceButton = true, showType = true, @@ -750,10 +751,7 @@ private NftPageView CreateLandPageView(LandsResponse.LandEntry[] lands, int i) nftInfo = lands[i + j].GetNftInfo(), }; } - else - { - pageElements[j] = null; - } + else { pageElements[j] = null; } } nftPageView.SetPageElementsContent(pageElements); diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Passport/PlayerPassportPlugin.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Passport/PlayerPassportPlugin.cs index d9d4d66920..38d8d3c4e8 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Passport/PlayerPassportPlugin.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Passport/PlayerPassportPlugin.cs @@ -17,7 +17,8 @@ public class PlayerPassportPlugin : IPlugin public PlayerPassportPlugin() { - PlayerPassportReferenceContainer referenceContainer = Object.Instantiate(Resources.Load("PlayerPassport")).GetComponent(); + PlayerPassportReferenceContainer referenceContainer = Object.Instantiate(Resources.Load("PlayerPassport")) + .GetComponent(); referenceContainer.PlayerPreviewView.Initialize(new PreviewCameraRotationController()); var wearablesCatalogService = Environment.i.serviceLocator.Get(); @@ -57,7 +58,8 @@ public PlayerPassportPlugin() Environment.i.serviceLocator.Get(), Environment.i.serviceLocator.Get(), NotificationsController.i), - referenceContainer.PassportNavigationView), + referenceContainer.PassportNavigationView, + Clipboard.Create()), new UserProfileWebInterfaceBridge(), new WebInterfacePassportApiBridge(), new SocialAnalytics( diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/PassportHUD.asmdef b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/PassportHUD.asmdef index 73d3c588f7..1cd59c41fb 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/PassportHUD.asmdef +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/PassportHUD.asmdef @@ -50,7 +50,8 @@ "GUID:4d3366a36e77f41cfb7436340334e236", "GUID:e6f5b34eba99b4ed9836f899578ee258", "GUID:70aa308435753374584c7061e4b89ef2", - "GUID:029e05fd02d6c49d5ac9dd7e3725a35b" + "GUID:029e05fd02d6c49d5ac9dd7e3725a35b", + "GUID:2ce94b4811f2a4b9b8dfd650158f7796" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Resources/PlayerPassport.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Resources/PlayerPassport.prefab index 230b502eed..66a0c030cc 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Resources/PlayerPassport.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Resources/PlayerPassport.prefab @@ -367,6 +367,7 @@ GameObject: - component: {fileID: 8172038849207987068} - component: {fileID: 4968925737736597240} - component: {fileID: 458436698184922812} + - component: {fileID: 3589403009107479090} m_Layer: 5 m_Name: IntroContainer m_TagString: Untagged @@ -424,7 +425,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.9882353, g: 0.9882353, b: 0.9882353, a: 1} - m_RaycastTarget: 0 + m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 100, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: @@ -480,6 +481,20 @@ MonoBehaviour: m_EditorClassIdentifier: m_HorizontalFit: 0 m_VerticalFit: 2 +--- !u!114 &3589403009107479090 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 285699922909699709} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f82e017250d074fa2a218204a7281cb0, type: 3} + m_Name: + m_EditorClassIdentifier: + targetObjects: + - {fileID: 6801399652414686851} --- !u!1 &434106548637641019 GameObject: m_ObjectHideFlags: 0 @@ -1040,6 +1055,7 @@ MonoBehaviour: viewAllEmotes: {fileID: 5880425388755662824} viewAllNAMEs: {fileID: 8583163942548666692} viewAllLANDs: {fileID: 1984410207179922530} + copyDescriptionButton: {fileID: 7611057887975799450} --- !u!1 &527012246134130348 GameObject: m_ObjectHideFlags: 0 @@ -1401,14 +1417,15 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 6934852435160735203} m_Father: {fileID: 2866234400657368098} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 200, y: 0} + m_SizeDelta: {x: 56.65, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5807336553805585180 CanvasRenderer: @@ -9893,6 +9910,144 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 +--- !u!1 &6801399652414686851 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6934852435160735203} + - component: {fileID: 6540324099047482200} + - component: {fileID: 2543263626641870916} + - component: {fileID: 7611057887975799450} + - component: {fileID: 679741465489925915} + m_Layer: 5 + m_Name: CopyDescriptionButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6934852435160735203 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6801399652414686851} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6183542770652211329} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -0.0000038147, y: 5.9} + m_SizeDelta: {x: 18, y: 18} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &6540324099047482200 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6801399652414686851} + m_CullTransparentMesh: 1 +--- !u!114 &2543263626641870916 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6801399652414686851} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5754717, g: 0.5754717, b: 0.5754717, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 09d7c763693b246d7bdb6df137a6f0cc, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7611057887975799450 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6801399652414686851} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2543263626641870916} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &679741465489925915 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6801399652414686851} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4bfd0d144b6d3dd438b84fa14a062c4f, type: 3} + m_Name: + m_EditorClassIdentifier: + playHover: 1 + playClick: 1 + playRelease: 1 + extraClickEvent: {fileID: 0} --- !u!1 &6995604753565850595 GameObject: m_ObjectHideFlags: 0 @@ -19187,27 +19342,27 @@ PrefabInstance: - target: {fileID: 858819896830267120, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 858819896830267120, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 858819896830267120, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: 22 objectReference: {fileID: 0} - target: {fileID: 858819896830267120, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 21 objectReference: {fileID: 0} - target: {fileID: 858819896830267120, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -18 objectReference: {fileID: 0} - target: {fileID: 1616525665509150121, guid: 59dab406fb0f74972a9f59906589040d, type: 3} @@ -19252,22 +19407,22 @@ PrefabInstance: - target: {fileID: 2292894213877703147, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2292894213877703147, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2292894213877703147, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 104 objectReference: {fileID: 0} - target: {fileID: 2292894213877703147, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -62 objectReference: {fileID: 0} - target: {fileID: 2454183078409975523, guid: 59dab406fb0f74972a9f59906589040d, type: 3} @@ -19352,52 +19507,52 @@ PrefabInstance: - target: {fileID: 3775766757495495480, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 3775766757495495480, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 3775766757495495480, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: 37.42 objectReference: {fileID: 0} - target: {fileID: 3775766757495495480, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 60.71 objectReference: {fileID: 0} - target: {fileID: 3775766757495495480, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -18 objectReference: {fileID: 0} - target: {fileID: 4175203525489278397, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 4175203525489278397, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 4175203525489278397, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: 22 objectReference: {fileID: 0} - target: {fileID: 4175203525489278397, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 21 objectReference: {fileID: 0} - target: {fileID: 4175203525489278397, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -18 objectReference: {fileID: 0} - target: {fileID: 4635252816811126590, guid: 59dab406fb0f74972a9f59906589040d, type: 3} @@ -19542,22 +19697,22 @@ PrefabInstance: - target: {fileID: 7146310924125134629, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7146310924125134629, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7146310924125134629, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 104 objectReference: {fileID: 0} - target: {fileID: 7146310924125134629, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -26 objectReference: {fileID: 0} - target: {fileID: 7597051091968027946, guid: 59dab406fb0f74972a9f59906589040d, type: 3} @@ -19603,27 +19758,27 @@ PrefabInstance: - target: {fileID: 8329512542225873954, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 8329512542225873954, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 8329512542225873954, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_SizeDelta.x - value: 0 + value: 45.88 objectReference: {fileID: 0} - target: {fileID: 8329512542225873954, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 64.94 objectReference: {fileID: 0} - target: {fileID: 8329512542225873954, guid: 59dab406fb0f74972a9f59906589040d, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -18 objectReference: {fileID: 0} - target: {fileID: 8433399550581108639, guid: 59dab406fb0f74972a9f59906589040d, type: 3} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Tests/PassportHUDControllerShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Tests/PassportHUDControllerShould.cs index 54a5dc01b6..5157e5a7e5 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Tests/PassportHUDControllerShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Tests/PassportHUDControllerShould.cs @@ -71,7 +71,8 @@ public void SetUp() Substitute.For(), Substitute.For(), NotificationsController.i), - Substitute.For()); + Substitute.For(), + Substitute.For()); controller = new PlayerPassportHUDController( view, From a7db2364258492cc84c445f0f2b639ce6d6a5f56 Mon Sep 17 00:00:00 2001 From: Nicolas Lorusso Date: Fri, 28 Jul 2023 11:04:15 -0300 Subject: [PATCH 16/24] added toast when copying profile description --- .../PassportNavigationComponentView.cs | 8 +- .../Passport/Resources/PlayerPassport.prefab | 139 ++++++++++++++++++ 2 files changed, 146 insertions(+), 1 deletion(-) diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Passport/PassportNavigation/PassportNavigationComponentView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Passport/PassportNavigation/PassportNavigationComponentView.cs index 3a579b18b5..fd9609b043 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Passport/PassportNavigation/PassportNavigationComponentView.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Passport/PassportNavigation/PassportNavigationComponentView.cs @@ -91,6 +91,7 @@ public class PassportNavigationComponentView : BaseComponentView, IPassportNavig [SerializeField] private ButtonComponentView viewAllNAMEs; [SerializeField] private ButtonComponentView viewAllLANDs; [SerializeField] private Button copyDescriptionButton; + [SerializeField] private ShowHideAnimator copyDescriptionToast; private static readonly Vector3 NFT_ICON_SCALE = new Vector3(0.75f, 0.75f, 0.75f); public event Action OnClickBuyNft; @@ -141,7 +142,12 @@ public void Start() viewAllEmotes.onClick.AddListener(() => OpenViewAllSection(PassportSection.Emotes)); viewAllNAMEs.onClick.AddListener(() => OpenViewAllSection(PassportSection.Names)); viewAllLANDs.onClick.AddListener(() => OpenViewAllSection(PassportSection.Lands)); - copyDescriptionButton.onClick.AddListener(() => OnCopyDescription?.Invoke()); + copyDescriptionButton.onClick.AddListener(() => + { + OnCopyDescription?.Invoke(); + copyDescriptionToast.gameObject.SetActive(true); + copyDescriptionToast.ShowDelayHide(3); + }); descriptionText.SubscribeToClickEvents(OnDescriptionClicked); nftWearablesPagesEntryPool = GetNftPagesEntryPool(NFT_PAGES_POOL_NAME_PREFIX + "Wearables"); diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Resources/PlayerPassport.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Resources/PlayerPassport.prefab index 66a0c030cc..65d259b272 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Resources/PlayerPassport.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Resources/PlayerPassport.prefab @@ -1056,6 +1056,7 @@ MonoBehaviour: viewAllNAMEs: {fileID: 8583163942548666692} viewAllLANDs: {fileID: 1984410207179922530} copyDescriptionButton: {fileID: 7611057887975799450} + copyDescriptionToast: {fileID: 4241659479121924597} --- !u!1 &527012246134130348 GameObject: m_ObjectHideFlags: 0 @@ -1419,6 +1420,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 6934852435160735203} + - {fileID: 298017798417002233} m_Father: {fileID: 2866234400657368098} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -21662,6 +21664,143 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 +--- !u!1001 &8825541682805965762 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 6183542770652211329} + m_Modifications: + - target: {fileID: 7841483112454866825, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_Name + value: TextCopiedToast + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_SizeDelta.x + value: 126 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 33.1 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 5.9 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 69d18becfc9ef4b7f92abaeae62a2ece, type: 3} +--- !u!224 &298017798417002233 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + m_PrefabInstance: {fileID: 8825541682805965762} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4241659479121924597 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4658966891920265783, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + m_PrefabInstance: {fileID: 8825541682805965762} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d8b939b5bedb9494b806609faeda7d8d, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1001 &9093773250875485713 PrefabInstance: m_ObjectHideFlags: 0 From 1d33ac93dffa12427d599aa5847508db74f35cb1 Mon Sep 17 00:00:00 2001 From: Nicolas Lorusso Date: Fri, 28 Jul 2023 11:31:47 -0300 Subject: [PATCH 17/24] fixed chat entry toast being clipped by mask --- .../HUD/SocialBarPrefabs/Chat/ChatEntry.prefab | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/Chat/ChatEntry.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/Chat/ChatEntry.prefab index ca809d6b02..3ce17c8856 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/Chat/ChatEntry.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/Chat/ChatEntry.prefab @@ -832,6 +832,16 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 5468237727077107961} m_Modifications: + - target: {fileID: 5933496341342518365, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_Maskable + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6305135970340749138, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_Maskable + value: 0 + objectReference: {fileID: 0} - target: {fileID: 7841483112454866825, guid: 69d18becfc9ef4b7f92abaeae62a2ece, type: 3} propertyPath: m_Name From 86c56c35aaa6c1f0a69a7a61db0fbdae3b820a36 Mon Sep 17 00:00:00 2001 From: Nicolas Lorusso Date: Fri, 28 Jul 2023 11:38:16 -0300 Subject: [PATCH 18/24] fixed prefab loading at UserContextMenuShould --- .../Controllers/UserContextMenu/Tests/UserContextMenuShould.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Tests/UserContextMenuShould.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Tests/UserContextMenuShould.cs index ac1e2447e9..acbe8e67a5 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Tests/UserContextMenuShould.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/UserContextMenu/Tests/UserContextMenuShould.cs @@ -5,6 +5,7 @@ using SocialFeaturesAnalytics; using System; using System.Collections; +using UnityEditor; using UnityEngine; using UnityEngine.TestTools; using Environment = DCL.Environment; @@ -21,7 +22,7 @@ public class UserContextMenuShould [UnitySetUp] public IEnumerator SetUp() { - var prefab = Resources.Load("UserContextMenuPanel"); + var prefab = AssetDatabase.LoadAssetAtPath("Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab"); contextMenu = Object.Instantiate(prefab); contextMenu.socialAnalytics = Substitute.For(); From 0309bc8679b3b3b1e620487b457c96b6c4deae97 Mon Sep 17 00:00:00 2001 From: Nicolas Lorusso Date: Fri, 28 Jul 2023 15:26:12 -0300 Subject: [PATCH 19/24] toast text modifications & minimap layout polishment --- .../HUD/Minimap/Resources/MinimapHUD.prefab | 18 ++++++++++++++---- .../Passport/Resources/PlayerPassport.prefab | 5 +++++ .../HUD/SocialBarPrefabs/Chat/ChatEntry.prefab | 5 +++++ .../ChannelOptionsContextualMenu.prefab | 5 +++++ .../UserContextMenuPanel.prefab | 5 +++++ 5 files changed, 34 insertions(+), 4 deletions(-) diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab index 0c5a3721ee..80760c68e7 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab @@ -3025,7 +3025,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 46.079987, y: -8.500002} + m_AnchoredPosition: {x: 46.079987, y: -7.15} m_SizeDelta: {x: 18, y: 18} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &3714597375162625211 @@ -3049,7 +3049,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 0.38431373} + m_Color: {r: 0.4431373, g: 0.41960788, b: 0.48627454, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -3161,7 +3161,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 70.08, y: -7.8} + m_AnchoredPosition: {x: 70.08, y: -7.15} m_SizeDelta: {x: 19, y: 17.5} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1194968960946825143 @@ -3715,6 +3715,11 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 4773941053877397113} m_Modifications: + - target: {fileID: 6305135970340749138, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_text + value: Location copied + objectReference: {fileID: 0} - target: {fileID: 7841483112454866825, guid: 69d18becfc9ef4b7f92abaeae62a2ece, type: 3} propertyPath: m_Name @@ -4134,6 +4139,11 @@ PrefabInstance: propertyPath: m_Name value: FavoriteButton objectReference: {fileID: 0} + - target: {fileID: 4154547706402340974, guid: 633e570ad7b45486690b28e43c776f5e, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 5499343381416532105, guid: 633e570ad7b45486690b28e43c776f5e, type: 3} propertyPath: m_Pivot.x @@ -4222,7 +4232,7 @@ PrefabInstance: - target: {fileID: 5499343381416532105, guid: 633e570ad7b45486690b28e43c776f5e, type: 3} propertyPath: m_AnchoredPosition.y - value: -8.500002 + value: -7.83 objectReference: {fileID: 0} - target: {fileID: 5499343381416532105, guid: 633e570ad7b45486690b28e43c776f5e, type: 3} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Resources/PlayerPassport.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Resources/PlayerPassport.prefab index 65d259b272..2f751e834e 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Resources/PlayerPassport.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Resources/PlayerPassport.prefab @@ -21671,6 +21671,11 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 6183542770652211329} m_Modifications: + - target: {fileID: 6305135970340749138, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_text + value: Text copied + objectReference: {fileID: 0} - target: {fileID: 7841483112454866825, guid: 69d18becfc9ef4b7f92abaeae62a2ece, type: 3} propertyPath: m_Name diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/Chat/ChatEntry.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/Chat/ChatEntry.prefab index 3ce17c8856..b145e1bb4b 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/Chat/ChatEntry.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/Chat/ChatEntry.prefab @@ -837,6 +837,11 @@ PrefabInstance: propertyPath: m_Maskable value: 0 objectReference: {fileID: 0} + - target: {fileID: 6305135970340749138, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_text + value: Message copied + objectReference: {fileID: 0} - target: {fileID: 6305135970340749138, guid: 69d18becfc9ef4b7f92abaeae62a2ece, type: 3} propertyPath: m_Maskable diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/ChannelOptionsContextualMenu.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/ChannelOptionsContextualMenu.prefab index 143483398b..85414d6070 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/ChannelOptionsContextualMenu.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/ChannelOptionsContextualMenu.prefab @@ -1131,6 +1131,11 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 9122324151661324192} m_Modifications: + - target: {fileID: 6305135970340749138, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_text + value: Channel copied + objectReference: {fileID: 0} - target: {fileID: 7841483112454866825, guid: 69d18becfc9ef4b7f92abaeae62a2ece, type: 3} propertyPath: m_Name diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab index eac3fb1468..3603f27a8e 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab @@ -4632,6 +4632,11 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 3523302219020209382} m_Modifications: + - target: {fileID: 6305135970340749138, guid: 69d18becfc9ef4b7f92abaeae62a2ece, + type: 3} + propertyPath: m_text + value: Name copied + objectReference: {fileID: 0} - target: {fileID: 7841483112454866825, guid: 69d18becfc9ef4b7f92abaeae62a2ece, type: 3} propertyPath: m_Name From 50d30a72e8738d117101ee0ccc744df6f8237b1d Mon Sep 17 00:00:00 2001 From: Nicolas Lorusso Date: Fri, 28 Jul 2023 16:08:14 -0300 Subject: [PATCH 20/24] improved passport on hover showing/hiding copy button --- .../HUD/MyAccountHUD/MyProfileController.cs | 11 ++++++- .../Passport/Resources/PlayerPassport.prefab | 30 +++++++++---------- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/MyAccountHUD/MyProfileController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/MyAccountHUD/MyProfileController.cs index 178b838a99..c56fa2d607 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/MyAccountHUD/MyProfileController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/MyAccountHUD/MyProfileController.cs @@ -11,6 +11,7 @@ using System.Text.RegularExpressions; using System.Threading; using UnityEngine; +using UnityEngine.Networking; namespace DCL.MyAccount { @@ -344,8 +345,16 @@ private void OnRemoveLinkRequested((string title, string url) obj) { async UniTaskVoid RemoveAndSaveLinkAsync(string title, string url, CancellationToken cancellationToken) { + url = UnityWebRequest.UnEscapeURL(url ?? ""); List links = new (ownUserProfile.Links); - links.RemoveAll(link => link.title == title && link.url == url); + links.RemoveAll(link => + { + string linkTitle = link.title ?? ""; + string linkURL = UnityWebRequest.UnEscapeURL(link.url ?? ""); + + return linkTitle.Equals(title, StringComparison.OrdinalIgnoreCase) + && linkURL.Equals(url, StringComparison.OrdinalIgnoreCase); + }); try { diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Resources/PlayerPassport.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Resources/PlayerPassport.prefab index 2f751e834e..93213f678c 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Resources/PlayerPassport.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/Resources/PlayerPassport.prefab @@ -367,7 +367,6 @@ GameObject: - component: {fileID: 8172038849207987068} - component: {fileID: 4968925737736597240} - component: {fileID: 458436698184922812} - - component: {fileID: 3589403009107479090} m_Layer: 5 m_Name: IntroContainer m_TagString: Untagged @@ -481,20 +480,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_HorizontalFit: 0 m_VerticalFit: 2 ---- !u!114 &3589403009107479090 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 285699922909699709} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f82e017250d074fa2a218204a7281cb0, type: 3} - m_Name: - m_EditorClassIdentifier: - targetObjects: - - {fileID: 6801399652414686851} --- !u!1 &434106548637641019 GameObject: m_ObjectHideFlags: 0 @@ -1146,6 +1131,7 @@ GameObject: - component: {fileID: 6651659347862313967} - component: {fileID: 8169893923459564751} - component: {fileID: 5024074767939450216} + - component: {fileID: 2873256305502090911} m_Layer: 5 m_Name: AboutContainer m_TagString: Untagged @@ -1253,6 +1239,20 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 576367882073382055} m_CullTransparentMesh: 1 +--- !u!114 &2873256305502090911 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 576367882073382055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f82e017250d074fa2a218204a7281cb0, type: 3} + m_Name: + m_EditorClassIdentifier: + targetObjects: + - {fileID: 6801399652414686851} --- !u!1 &578114385315238572 GameObject: m_ObjectHideFlags: 0 From 6ee63e9834aab624fac0d1882764a5dec0d86865 Mon Sep 17 00:00:00 2001 From: Nicolas Lorusso Date: Fri, 28 Jul 2023 16:21:29 -0300 Subject: [PATCH 21/24] fixed name font size in user context menu --- .../UserContextMenu/UserContextMenuPanel.prefab | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab index 3603f27a8e..8de30276fc 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/UserContextMenu/UserContextMenuPanel.prefab @@ -1081,7 +1081,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &4678502028939231263 RectTransform: m_ObjectHideFlags: 0 @@ -2087,7 +2087,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Player Name + m_text: PlayerName m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: a02669827dd9144f39b4b164e753a21a, type: 2} m_sharedMaterial: {fileID: 2100000, guid: 74b83fa9a54124695b9bdd8bea96fa17, type: 2} @@ -2117,7 +2117,7 @@ MonoBehaviour: m_fontSize: 15 m_fontSizeBase: 15 m_fontWeight: 400 - m_enableAutoSizing: 0 + m_enableAutoSizing: 1 m_fontSizeMin: 10 m_fontSizeMax: 15 m_fontStyle: 0 From 13ffcc0ece405968cc51c890d09075a029fef7ad Mon Sep 17 00:00:00 2001 From: Nicolas Lorusso Date: Fri, 28 Jul 2023 16:57:32 -0300 Subject: [PATCH 22/24] fixed toast alignment on minimap --- .../DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab index 80760c68e7..b26c52211d 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab @@ -3813,7 +3813,7 @@ PrefabInstance: - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, type: 3} propertyPath: m_AnchoredPosition.y - value: 0.29993057 + value: -7.1500034 objectReference: {fileID: 0} - target: {fileID: 9104126690634640699, guid: 69d18becfc9ef4b7f92abaeae62a2ece, type: 3} From 8854a629078377de33abb5f89960d56f5898a20e Mon Sep 17 00:00:00 2001 From: Nicolas Lorusso Date: Fri, 28 Jul 2023 17:43:09 -0300 Subject: [PATCH 23/24] changed colors of like and copy button in minimap --- .../Controllers/HUD/Minimap/Resources/MinimapHUD.prefab | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab index b26c52211d..86efb73bd8 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Minimap/Resources/MinimapHUD.prefab @@ -3049,7 +3049,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0.4431373, g: 0.41960788, b: 0.48627454, a: 1} + m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -4134,6 +4134,11 @@ PrefabInstance: propertyPath: m_SizeDelta.y value: -13 objectReference: {fileID: 0} + - target: {fileID: 2649852299917316514, guid: 633e570ad7b45486690b28e43c776f5e, + type: 3} + propertyPath: noFavoriteFillColor.a + value: 0 + objectReference: {fileID: 0} - target: {fileID: 4154547706402340974, guid: 633e570ad7b45486690b28e43c776f5e, type: 3} propertyPath: m_Name From 0297653af98ae43d9b83a8ffb9d01275726a6f44 Mon Sep 17 00:00:00 2001 From: Nicolas Lorusso Date: Mon, 31 Jul 2023 14:28:41 -0300 Subject: [PATCH 24/24] implemented copy/paste contextual menu in chat input --- .../HUD/ChatWidgetHUD/ChatHUD.asmdef | 5 +- .../ChatInputContextualMenuController.cs | 100 +++ .../ChatInputContextualMenuController.cs.meta | 3 + .../ChatInputContextualMenuModel.cs | 8 + .../ChatInputContextualMenuModel.cs.meta | 3 + .../ChatInputContextualMenuPlugin.cs | 25 + .../ChatInputContextualMenuPlugin.cs.meta | 3 + .../ChatInputContextualMenuView.cs | 143 ++++ .../ChatInputContextualMenuView.cs.meta | 3 + .../IChatInputContextMenuView.cs | 15 + .../IChatInputContextMenuView.cs.meta | 3 + .../SocialBarV1/Prefabs/ChatHUD.prefab | 681 +++++++++++++++++- .../ChatChannelHUDController.cs | 1 - .../PluginSystem/PluginSystem.asmdef | 3 +- .../PluginSystem/PluginSystemFactory.cs | 1 + 15 files changed, 991 insertions(+), 6 deletions(-) create mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuController.cs create mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuController.cs.meta create mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuModel.cs create mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuModel.cs.meta create mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuPlugin.cs create mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuPlugin.cs.meta create mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuView.cs create mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuView.cs.meta create mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/IChatInputContextMenuView.cs create mode 100644 unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/IChatInputContextMenuView.cs.meta diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatHUD.asmdef b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatHUD.asmdef index 929c7b40fb..7bc5f41c21 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatHUD.asmdef +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatHUD.asmdef @@ -33,7 +33,10 @@ "GUID:55b66aa56b81d2d4cafb4a5f02bc90ca", "GUID:2995626b54c60644988f134a69a77450", "GUID:e31367fcee1378a4e83de1f9cd2c161d", - "GUID:e5b8a8ed154ad624f99bcb73d3284a90" + "GUID:e5b8a8ed154ad624f99bcb73d3284a90", + "GUID:e99faafecbf8dd74d8130597511b9b27", + "GUID:7fe146b43e76fe745aeaf2020feb54b7", + "GUID:2ce94b4811f2a4b9b8dfd650158f7796" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuController.cs new file mode 100644 index 0000000000..2144e79802 --- /dev/null +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuController.cs @@ -0,0 +1,100 @@ +using Cysharp.Threading.Tasks; +using DCL.Helpers; +using DCL.Tasks; +using System; +using System.Threading; +using UnityEngine; + +namespace DCL.Social.Chat +{ + public class ChatInputContextualMenuController + { + private readonly IChatInputContextMenuView view; + private readonly IClipboard clipboard; + private bool isAnySelectedText; + private CancellationTokenSource updateUiCancellationToken; + private CancellationTokenSource pasteCancellationToken; + + public ChatInputContextualMenuController( + IChatInputContextMenuView view, + IClipboard clipboard) + { + this.view = view; + this.clipboard = clipboard; + + view.Hide(); + + view.OnShowRequested += OnShowRequested; + view.OnSelectionChanged += OnSelectionChanged; + view.OnPasteRequested += PasteFromClipboard; + view.OnCopyRequested += CopyToClipboard; + } + + public void Dispose() + { + view.OnShowRequested -= OnShowRequested; + view.OnSelectionChanged -= OnSelectionChanged; + view.OnPasteRequested -= PasteFromClipboard; + view.OnCopyRequested -= CopyToClipboard; + view.Dispose(); + } + + private void OnShowRequested() + { + updateUiCancellationToken = updateUiCancellationToken.SafeRestart(); + UpdateView(updateUiCancellationToken.Token) + .ContinueWith(() => view.Show()) + .Forget(); + } + + private void OnSelectionChanged(string selectedText) + { + isAnySelectedText = !string.IsNullOrEmpty(selectedText); + updateUiCancellationToken = updateUiCancellationToken.SafeRestart(); + UpdateView(updateUiCancellationToken.Token).Forget(); + } + + private void PasteFromClipboard() + { + async UniTaskVoid PasteFromClipboardAsync(CancellationToken cancellationToken) + { + try + { + string bufferInClipboard = await clipboard.ReadText().ToUniTask(cancellationToken: cancellationToken); + view.Paste(bufferInClipboard); + view.Hide(); + } + catch (OperationCanceledException) { } + catch (Exception e) { Debug.LogException(e); } + } + + pasteCancellationToken = pasteCancellationToken.SafeRestart(); + PasteFromClipboardAsync(pasteCancellationToken.Token).Forget(); + } + + private void CopyToClipboard(string str) + { + clipboard.WriteText(str); + updateUiCancellationToken = updateUiCancellationToken.SafeRestart(); + UpdateView(updateUiCancellationToken.Token) + .ContinueWith(() => view.Hide()) + .Forget(); + } + + private async UniTask UpdateView(CancellationToken cancellationToken) + { + try + { + string bufferInClipboard = await clipboard.ReadText().ToUniTask(cancellationToken: cancellationToken); + + view.SetModel(new ChatInputContextualMenuModel + { + IsCopyButtonEnabled = isAnySelectedText, + IsPasteButtonEnabled = !string.IsNullOrEmpty(bufferInClipboard), + }); + } + catch (OperationCanceledException) { } + catch (Exception e) { Debug.LogException(e); } + } + } +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuController.cs.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuController.cs.meta new file mode 100644 index 0000000000..1135648fb0 --- /dev/null +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuController.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: cf3099890b8942ba9c1c179584d0bb3b +timeCreated: 1690810836 \ No newline at end of file diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuModel.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuModel.cs new file mode 100644 index 0000000000..8e2b124c03 --- /dev/null +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuModel.cs @@ -0,0 +1,8 @@ +namespace DCL.Social.Chat +{ + public record ChatInputContextualMenuModel + { + public bool IsCopyButtonEnabled; + public bool IsPasteButtonEnabled; + } +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuModel.cs.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuModel.cs.meta new file mode 100644 index 0000000000..3cdd16fabf --- /dev/null +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuModel.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: cf5d48d6c4e44c4691b18b78b1af77ba +timeCreated: 1690811407 \ No newline at end of file diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuPlugin.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuPlugin.cs new file mode 100644 index 0000000000..c6a75a55e4 --- /dev/null +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuPlugin.cs @@ -0,0 +1,25 @@ +using System.Collections.Generic; + +namespace DCL.Social.Chat +{ + public class ChatInputContextualMenuPlugin : IPlugin + { + private readonly List controllers = new (); + + public ChatInputContextualMenuPlugin() + { + ChatInputContextualMenuView.instances.OnAdded += view => + { + controllers.Add(new ChatInputContextualMenuController(view, Clipboard.Create())); + }; + } + + public void Dispose() + { + foreach (ChatInputContextualMenuController controller in controllers) + controller.Dispose(); + + controllers.Clear(); + } + } +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuPlugin.cs.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuPlugin.cs.meta new file mode 100644 index 0000000000..29609be4d5 --- /dev/null +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuPlugin.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ddb745a99f6d4c05a3fc6330ab5fa5a2 +timeCreated: 1690817225 \ No newline at end of file diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuView.cs new file mode 100644 index 0000000000..9b06061e6a --- /dev/null +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuView.cs @@ -0,0 +1,143 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using TMPro; +using UIComponents.Scripts.Components; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace DCL.Social.Chat +{ + public class ChatInputContextualMenuView : BaseComponentView, + IPointerClickHandler, IChatInputContextMenuView + { + public static readonly BaseList instances = new (); + + [SerializeField] private TMP_InputField inputField; + [SerializeField] private GameObject menuContainer; + [SerializeField] private Button pasteButton; + [SerializeField] private Button copyButton; + [SerializeField] private bool selfDestroy; + + private string selectedText; + private readonly List clickRaycastResultsBuffer = new (); + + public event Action OnSelectionChanged; + public event Action OnShowRequested; + public event Action OnPasteRequested; + public event Action OnCopyRequested; + + public override void Awake() + { + base.Awake(); + + inputField.onTextSelection.AddListener((str, i, i2) => + { + int from = Mathf.Min(i, i2); + int until = Mathf.Max(i, i2); + selectedText = str?.Substring(from, until - from); + OnSelectionChanged?.Invoke(str); + }); + inputField.onEndTextSelection.AddListener((str, i, i2) => + { + int from = Mathf.Min(i, i2); + int until = Mathf.Max(i, i2); + selectedText = str?.Substring(from, until - from); + OnSelectionChanged?.Invoke(str); + }); + pasteButton.onClick.AddListener(() => OnPasteRequested?.Invoke()); + copyButton.onClick.AddListener(() => OnCopyRequested?.Invoke(selectedText)); + + instances.Add(this); + } + + public override void Dispose() + { + instances.Remove(this); + + if (!selfDestroy) return; + + base.Dispose(); + } + + private void Update() + { + HideIfClickedOutside(); + } + + public override void RefreshControl() + { + pasteButton.interactable = model.IsPasteButtonEnabled; + copyButton.interactable = model.IsCopyButtonEnabled; + } + + public override void Show(bool instant = false) + { + menuContainer.SetActive(true); + } + + public override void Hide(bool instant = false) + { + menuContainer.SetActive(false); + } + + public void OnPointerClick(PointerEventData eventData) + { + if (eventData is not { button: PointerEventData.InputButton.Right }) return; + if (menuContainer.activeSelf) return; + + menuContainer.transform.position = eventData.position + (Vector2.up * 20); + OnShowRequested?.Invoke(); + } + + public void Paste(string text) + { + int position = 0; + + if (inputField.selectionStringAnchorPosition != -1 + && inputField.selectionStringFocusPosition != -1) + { + int from = Mathf.Min(inputField.selectionStringFocusPosition, inputField.selectionStringAnchorPosition); + int until = Mathf.Max(inputField.selectionStringFocusPosition, inputField.selectionStringAnchorPosition); + + string result = inputField.text.Remove(from, until - from); + + result = result.Insert(from, text); + + inputField.text = result; + position = from + text.Length; + } + else if (inputField.stringPosition != -1) + { + inputField.text = inputField.text.Insert(inputField.stringPosition, text); + position = inputField.text.Length; + } + else + { + inputField.text += text; + position = inputField.text.Length; + } + + inputField.stringPosition = position; + inputField.Select(); + } + + private void HideIfClickedOutside() + { + if (!Input.GetMouseButtonDown(0)) return; + + var pointerEventData = new PointerEventData(EventSystem.current) + { + position = Input.mousePosition + }; + + clickRaycastResultsBuffer.Clear(); + EventSystem.current.RaycastAll(pointerEventData, clickRaycastResultsBuffer); + + if (clickRaycastResultsBuffer.All(result => result.gameObject != copyButton.gameObject + && result.gameObject != pasteButton.gameObject)) + Hide(); + } + } +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuView.cs.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuView.cs.meta new file mode 100644 index 0000000000..babbadc2bf --- /dev/null +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/ChatInputContextualMenuView.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: da3c60d2f7984d88a99e78101510fb22 +timeCreated: 1690809638 \ No newline at end of file diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/IChatInputContextMenuView.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/IChatInputContextMenuView.cs new file mode 100644 index 0000000000..a19464e3a6 --- /dev/null +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/IChatInputContextMenuView.cs @@ -0,0 +1,15 @@ +using System; +using UIComponents.Scripts.Components; + +namespace DCL.Social.Chat +{ + public interface IChatInputContextMenuView : IBaseComponentView + { + event Action OnSelectionChanged; + event Action OnShowRequested; + event Action OnPasteRequested; + event Action OnCopyRequested; + + void Paste(string text); + } +} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/IChatInputContextMenuView.cs.meta b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/IChatInputContextMenuView.cs.meta new file mode 100644 index 0000000000..0cc4d4640d --- /dev/null +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ChatWidgetHUD/IChatInputContextMenuView.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 61bb6622f63b4f0b8b21d1c09d3e95f0 +timeCreated: 1690811320 \ No newline at end of file diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/ChatHUD.prefab b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/ChatHUD.prefab index a854b0e68f..f4c7613982 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/ChatHUD.prefab +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/SocialBarPrefabs/SocialBarV1/Prefabs/ChatHUD.prefab @@ -1,5 +1,144 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &66811621084706399 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1660148791152516761} + - component: {fileID: 8111364234832029512} + - component: {fileID: 8354686798964425681} + - component: {fileID: 1717801813469949168} + - component: {fileID: 1986850029307320379} + m_Layer: 5 + m_Name: Copy + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1660148791152516761 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 66811621084706399} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5478559867860438807} + m_Father: {fileID: 5886301590327527359} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 36.925, y: -20} + m_SizeDelta: {x: 73.85, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8111364234832029512 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 66811621084706399} + m_CullTransparentMesh: 1 +--- !u!114 &8354686798964425681 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 66811621084706399} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1717801813469949168 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 66811621084706399} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.8867924, g: 0.8867924, b: 0.8867924, a: 1} + m_PressedColor: {r: 0.6320754, g: 0.6320754, b: 0.6320754, a: 1} + m_SelectedColor: {r: 0.8862745, g: 0.8862745, b: 0.8862745, a: 1} + m_DisabledColor: {r: 0.49056602, g: 0.49056602, b: 0.49056602, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3770117740345698166} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1986850029307320379 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 66811621084706399} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4bfd0d144b6d3dd438b84fa14a062c4f, type: 3} + m_Name: + m_EditorClassIdentifier: + playHover: 1 + playClick: 1 + playRelease: 1 + extraClickEvent: {fileID: 0} --- !u!1 &116538546712708781 GameObject: m_ObjectHideFlags: 0 @@ -127,6 +266,281 @@ MonoBehaviour: m_OnValueChanged: m_PersistentCalls: m_Calls: [] +--- !u!1 &309640486247367965 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1377317656860896670} + - component: {fileID: 8411291326832339202} + - component: {fileID: 7815162677479711937} + - component: {fileID: 6255384736817514212} + - component: {fileID: 6310036675709784435} + m_Layer: 5 + m_Name: Paste + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1377317656860896670 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 309640486247367965} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 848439826206051908} + m_Father: {fileID: 5886301590327527359} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 110.774994, y: -20} + m_SizeDelta: {x: 73.85, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8411291326832339202 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 309640486247367965} + m_CullTransparentMesh: 1 +--- !u!114 &7815162677479711937 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 309640486247367965} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6255384736817514212 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 309640486247367965} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.8867924, g: 0.8867924, b: 0.8867924, a: 1} + m_PressedColor: {r: 0.6320754, g: 0.6320754, b: 0.6320754, a: 1} + m_SelectedColor: {r: 0.8862745, g: 0.8862745, b: 0.8862745, a: 1} + m_DisabledColor: {r: 0.49056602, g: 0.49056602, b: 0.49056602, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 9185865832757104011} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &6310036675709784435 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 309640486247367965} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4bfd0d144b6d3dd438b84fa14a062c4f, type: 3} + m_Name: + m_EditorClassIdentifier: + playHover: 1 + playClick: 1 + playRelease: 1 + extraClickEvent: {fileID: 0} +--- !u!1 &360734892986302363 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 848439826206051908} + - component: {fileID: 6878607047338320248} + - component: {fileID: 9185865832757104011} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &848439826206051908 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 360734892986302363} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1377317656860896670} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6878607047338320248 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 360734892986302363} + m_CullTransparentMesh: 1 +--- !u!114 &9185865832757104011 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 360734892986302363} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: PASTE + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 6708c7eadd49b49f4ac3469e5104e7c9, type: 2} + m_sharedMaterial: {fileID: 2100000, guid: dd1effe058ec94479a0dd10765262662, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294769916 + m_fontColor: {r: 0.9882353, g: 0.9882353, b: 0.9882353, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} --- !u!1 &548195403721365971 GameObject: m_ObjectHideFlags: 0 @@ -235,6 +649,142 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: b85da332798fc458595ca5a677f1bf18, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &863746887448513236 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5478559867860438807} + - component: {fileID: 4229880248238248260} + - component: {fileID: 3770117740345698166} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5478559867860438807 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 863746887448513236} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1660148791152516761} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4229880248238248260 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 863746887448513236} + m_CullTransparentMesh: 1 +--- !u!114 &3770117740345698166 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 863746887448513236} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: COPY + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 6708c7eadd49b49f4ac3469e5104e7c9, type: 2} + m_sharedMaterial: {fileID: 2100000, guid: dd1effe058ec94479a0dd10765262662, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294769916 + m_fontColor: {r: 0.9882353, g: 0.9882353, b: 0.9882353, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} --- !u!1 &1466904682867656693 GameObject: m_ObjectHideFlags: 0 @@ -249,6 +799,7 @@ GameObject: - component: {fileID: 590022725704841183} - component: {fileID: 6653680574432472638} - component: {fileID: 620615709946968176} + - component: {fileID: 797416589073613423} m_Layer: 5 m_Name: Input m_TagString: Untagged @@ -269,6 +820,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 3712662683410062164} + - {fileID: 5886301590327527359} m_Father: {fileID: 7497584698789204027} m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -445,6 +997,24 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: showHtmlElement: 0 +--- !u!114 &797416589073613423 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1466904682867656693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da3c60d2f7984d88a99e78101510fb22, type: 3} + m_Name: + m_EditorClassIdentifier: + showHideAnimator: {fileID: 0} + inputField: {fileID: 590022725704841183} + menuContainer: {fileID: 3770069180290503736} + pasteButton: {fileID: 6255384736817514212} + copyButton: {fileID: 1717801813469949168} + selfDestroy: 0 --- !u!1 &1867782450773908753 GameObject: m_ObjectHideFlags: 0 @@ -1129,6 +1699,111 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 +--- !u!1 &3770069180290503736 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5886301590327527359} + - component: {fileID: 4607156812383668135} + - component: {fileID: 6414689750940523831} + - component: {fileID: 5606135453111485212} + m_Layer: 5 + m_Name: ContextualMenu + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &5886301590327527359 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3770069180290503736} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1660148791152516761} + - {fileID: 1377317656860896670} + m_Father: {fileID: 552498375794308537} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -17, y: 47.6} + m_SizeDelta: {x: 147.7, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4607156812383668135 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3770069180290503736} + m_CullTransparentMesh: 1 +--- !u!114 &6414689750940523831 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3770069180290503736} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.08627451, g: 0.08235294, b: 0.09411765, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f02af068e11cb4902a1a4faad10b890a, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 2.5 +--- !u!114 &5606135453111485212 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3770069180290503736} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 --- !u!1 &3848163434265143007 GameObject: m_ObjectHideFlags: 0 @@ -2308,7 +2983,7 @@ PrefabInstance: - target: {fileID: 33180226908608850, guid: 15120eceeeb9c45ee9d520a23f50872d, type: 3} propertyPath: m_IsActive - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 209470434955866080, guid: 15120eceeeb9c45ee9d520a23f50872d, type: 3} @@ -2693,7 +3368,7 @@ PrefabInstance: - target: {fileID: 4733887283956242434, guid: 15120eceeeb9c45ee9d520a23f50872d, type: 3} propertyPath: m_IsActive - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 5191761706286609472, guid: 15120eceeeb9c45ee9d520a23f50872d, type: 3} @@ -3123,7 +3798,7 @@ PrefabInstance: - target: {fileID: 8859036475654810075, guid: 15120eceeeb9c45ee9d520a23f50872d, type: 3} propertyPath: m_IsActive - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 9109606891818156669, guid: 15120eceeeb9c45ee9d520a23f50872d, type: 3} diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChatChannelHUDController.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChatChannelHUDController.cs index b205425917..eeb0e0d53d 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChatChannelHUDController.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChatChannelHUDController.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using System.Threading; using Cysharp.Threading.Tasks; -using DCL.Social.Chat; using DCL.Interface; using DCL.ProfanityFiltering; using DCL.Social.Chat.Mentions; diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/PluginSystem/PluginSystem.asmdef b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/PluginSystem/PluginSystem.asmdef index 27b61208aa..c3d35c3390 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/PluginSystem/PluginSystem.asmdef +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/PluginSystem/PluginSystem.asmdef @@ -73,7 +73,8 @@ "GUID:0f15c7a7fa0e4b94aaceddb51ad829ac", "GUID:ab088438f3b94a0da2e753ee6cae5e25", "GUID:b2d6f791b7364903976be461bae7f03d", - "GUID:ad49836f54104ebe85262b0f0f042335" + "GUID:ad49836f54104ebe85262b0f0f042335", + "GUID:6c83ec3e64bad1743a40f7646cd964a4" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/PluginSystem/PluginSystemFactory.cs b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/PluginSystem/PluginSystemFactory.cs index c865faaeb6..a7f47bf778 100644 --- a/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/PluginSystem/PluginSystemFactory.cs +++ b/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/PluginSystem/PluginSystemFactory.cs @@ -73,6 +73,7 @@ public static PluginSystem Create() pluginSystem.Register(() => new SignupHUDPlugin()); pluginSystem.Register(() => new PortableExperiencesTogglePlugin()); pluginSystem.Register(() => new HidePortableExperiencesUiPlugin()); + pluginSystem.Register(() => new ChatInputContextualMenuPlugin()); pluginSystem.RegisterWithFlag(() => new FriendRequestHUDPlugin(), "new_friend_requests"); pluginSystem.RegisterWithFlag(() => new RealmPlugin(DataStore.i), "realms_modifier_plugin");