public void BePopulatedCorrectlyWithNullOrEmptyElements() { var sceneInfo = new MinimapMetadata.MinimapSceneInfo() { name = "foo", owner = null, description = "", isPOI = false, parcels = new List <Vector2Int>() { new Vector2Int(10, 10), new Vector2Int(10, 11), new Vector2Int(10, 12) } }; MinimapMetadata.GetMetadata().Clear(); MinimapMetadata.GetMetadata().AddSceneInfo(sceneInfo); navmapToastView.Populate(new Vector2Int(10, 11), sceneInfo); Assert.IsTrue(navmapToastView.gameObject.activeSelf); Assert.IsTrue(navmapToastView.sceneLocationText.transform.parent.gameObject.activeInHierarchy); Assert.AreEqual("10, 11", navmapToastView.sceneLocationText.text); Assert.IsTrue(navmapToastView.sceneTitleText.transform.parent.gameObject.activeInHierarchy); Assert.IsFalse(navmapToastView.sceneOwnerText.transform.parent.gameObject.activeInHierarchy); Assert.IsFalse(navmapToastView.scenePreviewContainer.gameObject.activeInHierarchy); }
public void Initialize() { if (isInitialized) { return; } isInitialized = true; EnsurePools(); atlas.InitializeChunks(); NAVMAP_CHUNK_LAYER = LayerMask.NameToLayer("NavmapChunk"); MinimapMetadata.GetMetadata().OnSceneInfoUpdated += MapRenderer_OnSceneInfoUpdated; MinimapMetadata.GetMetadata().OnUserInfoUpdated += MapRenderer_OnUserInfoUpdated; MinimapMetadata.GetMetadata().OnUserInfoRemoved += MapRenderer_OnUserInfoRemoved; ParcelHighlightButton.onClick.AddListener(ClickMousePositionParcel); playerWorldPosition.OnChange += OnCharacterMove; playerRotation.OnChange += OnCharacterRotate; parcelHighlightImage.rectTransform.localScale = new Vector3(parcelHightlightScale, parcelHightlightScale, 1f); parcelHoldCountdown = parcelHoldTimeInSeconds; usersPositionMarkerController = new MapGlobalUsersPositionMarkerController(globalUserMarkerPrefab, globalUserMarkerContainer, MapUtils.GetTileToLocalPosition); usersPositionMarkerController.SetUpdateMode(MapGlobalUsersPositionMarkerController.UpdateMode.BACKGROUND); KernelConfig.i.OnChange += OnKernelConfigChanged; }
private void Awake() { i = this; usersInfoPool = PoolManager.i.GetPool(MINIMAP_USER_ICONS_POOL_NAME); if (usersInfoPool == null) { usersInfoPool = PoolManager.i.AddPool( MINIMAP_USER_ICONS_POOL_NAME, Instantiate(userIconPrefab.gameObject, overlayContainer.transform), maxPrewarmCount: MINIMAP_USER_ICONS_MAX_PREWARM, isPersistent: true); usersInfoPool.ForcePrewarm(); } NAVMAP_CHUNK_LAYER = LayerMask.NameToLayer("NavmapChunk"); MinimapMetadata.GetMetadata().OnSceneInfoUpdated += MapRenderer_OnSceneInfoUpdated; MinimapMetadata.GetMetadata().OnUserInfoUpdated += MapRenderer_OnUserInfoUpdated; MinimapMetadata.GetMetadata().OnUserInfoRemoved += MapRenderer_OnUserInfoRemoved; ParcelHighlightButton.onClick.AddListener(() => { ClickMousePositionParcel(); }); playerWorldPosition.OnChange += OnCharacterMove; playerRotation.OnChange += OnCharacterRotate; parcelHighlightImage.rectTransform.localScale = new Vector3(parcelHightlightScale, parcelHightlightScale, 1f); parcelHoldCountdown = parcelHoldTimeInSeconds; }
public void BePopulatedCorrectly() { var sceneInfo = new MinimapMetadata.MinimapSceneInfo() { name = "foo", owner = "bar", description = "foobar", isPOI = false, parcels = new List <Vector2Int>() { new Vector2Int(10, 10), new Vector2Int(10, 11), new Vector2Int(10, 12) } }; MinimapMetadata.GetMetadata().Clear(); MinimapMetadata.GetMetadata().AddSceneInfo(sceneInfo); navmapToastView.Populate(new Vector2Int(10, 10), sceneInfo); Assert.IsTrue(navmapToastView.gameObject.activeSelf); Assert.AreEqual(sceneInfo.name, navmapToastView.sceneTitleText.text); Assert.AreEqual($"Created by: {sceneInfo.owner}", navmapToastView.sceneOwnerText.text); Assert.AreEqual("10, 10", navmapToastView.sceneLocationText.text); Assert.IsTrue(navmapToastView.sceneTitleText.gameObject.activeInHierarchy); Assert.IsTrue(navmapToastView.sceneOwnerText.gameObject.activeInHierarchy); }
public void Initialize() { if (isInitialized) { return; } isInitialized = true; EnsurePools(); atlas.InitializeChunks(); NAVMAP_CHUNK_LAYER = LayerMask.NameToLayer("NavmapChunk"); MinimapMetadata.GetMetadata().OnSceneInfoUpdated += MapRenderer_OnSceneInfoUpdated; MinimapMetadata.GetMetadata().OnUserInfoUpdated += MapRenderer_OnUserInfoUpdated; MinimapMetadata.GetMetadata().OnUserInfoRemoved += MapRenderer_OnUserInfoRemoved; ParcelHighlightButton.onClick.AddListener(ClickMousePositionParcel); playerWorldPosition.OnChange += OnCharacterMove; playerRotation.OnChange += OnCharacterRotate; parcelHighlightImage.rectTransform.localScale = new Vector3(parcelHightlightScale, parcelHightlightScale, 1f); parcelHoldCountdown = parcelHoldTimeInSeconds; }
void UpdateCurrentSceneData(Vector2Int current, Vector2Int previous) { const string format = "{0},{1}"; currentSceneCoordsText.text = string.Format(format, current.x, current.y); currentSceneNameText.text = MinimapMetadata.GetMetadata().GetSceneInfo(current.x, current.y)?.name ?? "Unnamed"; }
/// <summary> /// Dispose HUD controller /// </summary> public void Dispose() { ReportMuteStatuses(); if (updateMuteStatusRoutine != null) { CoroutineStarter.Stop(updateMuteStatusRoutine); } MinimapMetadata.GetMetadata().OnUserInfoUpdated -= MapRenderer_OnUserInfoUpdated; MinimapMetadata.GetMetadata().OnUserInfoRemoved -= MapRenderer_OnUserInfoRemoved; 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; } }
void Start() { mapMetadata = MinimapMetadata.GetMetadata(); closeButton.onClick.AddListener(() => { ToggleNavMap(); Utils.UnlockCursor(); }); scrollRect.onValueChanged.AddListener((x) => { if (!isOpen) return; MapRenderer.i.atlas.UpdateCulling(); toastView.OnCloseClick(); }); toggleNavMapDelegate = (x) => { if (!Input.GetKeyDown(KeyCode.Escape) || isOpen) ToggleNavMap(); }; toggleNavMapAction.OnTriggered += toggleNavMapDelegate; toastView.OnGotoClicked += () => ToggleNavMap(true); MapRenderer.OnParcelClicked += TriggerToast; MapRenderer.OnParcelHold += TriggerToast; MapRenderer.OnParcelHoldCancel += () => { toastView.OnCloseClick(); }; MinimapHUDView.OnUpdateData += UpdateCurrentSceneData; MinimapHUDView.OnOpenNavmapClicked += () => ToggleNavMap(); toastView.gameObject.SetActive(false); scrollRect.gameObject.SetActive(false); }
public void ShowWelcomeNotification() { if (disableWelcomeNotification) { return; } //TODO(Brian): This should be triggered entirely by kernel string notificationText = $"Welcome, {UserProfile.GetOwnUserProfile().userName}!"; Vector2Int currentCoords = CommonScriptableObjects.playerCoords.Get(); string parcelName = MinimapMetadata.GetMetadata().GetSceneInfo(currentCoords.x, currentCoords.y)?.name; if (!string.IsNullOrEmpty(parcelName)) { notificationText += $" You are in {parcelName} {currentCoords.x}, {currentCoords.y}"; } Notification.Model model = new Notification.Model() { message = notificationText, scene = "", type = NotificationFactory.Type.GENERIC_WITHOUT_BUTTON, timer = NOTIFICATION_DURATION }; controller.ShowNotification(model); }
public void SetMinimapData(Vector2Int baseCoord, IMapDataView targetView, Action <IMapDataView> onResolvedCallback, Action <IMapDataView> onRejectedCallback) { if (targetView.HasMinimapSceneInfo()) { onResolvedCallback?.Invoke(targetView); return; } targetView.SetBaseCoord(baseCoord); var info = MinimapMetadata.GetMetadata().GetSceneInfo(baseCoord.x, baseCoord.y); if (info != null) { targetView.SetMinimapSceneInfo(info); onResolvedCallback?.Invoke(targetView); } else { PendingData pending = null; if (!pendingSceneData.TryGetValue(baseCoord, out pending)) { pending = new PendingData(); pendingSceneData.Add(baseCoord, pending); } pending.AddPending(targetView, onResolvedCallback, onRejectedCallback); } }
public void Cleanup() { if (atlas != null) { atlas.Cleanup(); } foreach (var kvp in scenesOfInterestMarkers) { if (kvp.Value != null) { Destroy(kvp.Value); } } scenesOfInterestMarkers.Clear(); playerWorldPosition.OnChange -= OnCharacterMove; playerRotation.OnChange -= OnCharacterRotate; MinimapMetadata.GetMetadata().OnSceneInfoUpdated -= MapRenderer_OnSceneInfoUpdated; MinimapMetadata.GetMetadata().OnUserInfoUpdated -= MapRenderer_OnUserInfoUpdated; MinimapMetadata.GetMetadata().OnUserInfoRemoved -= MapRenderer_OnUserInfoRemoved; ParcelHighlightButton.onClick.RemoveListener(ClickMousePositionParcel); usersPositionMarkerController?.Dispose(); KernelConfig.i.OnChange -= OnKernelConfigChanged; isInitialized = false; }
public void OnDestroy() { playerWorldPosition.OnChange -= OnCharacterMove; playerRotation.OnChange -= OnCharacterRotate; MinimapMetadata.GetMetadata().OnSceneInfoUpdated -= MapRenderer_OnSceneInfoUpdated; MinimapMetadata.GetMetadata().OnUserInfoUpdated -= MapRenderer_OnUserInfoUpdated; MinimapMetadata.GetMetadata().OnUserInfoRemoved -= MapRenderer_OnUserInfoRemoved; }
public static MinimapMetadata GetMetadata() { if (minimapMetadata == null) { minimapMetadata = Resources.Load <MinimapMetadata>("ScriptableObjects/MinimapMetadata"); } return(minimapMetadata); }
private void Awake() { minimapMetadata = MinimapMetadata.GetMetadata(); rectTransform = transform as RectTransform; goToButton.onClick.AddListener(OnGotoClick); minimapMetadata.OnSceneInfoUpdated += OnMapMetadataInfoUpdated; }
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] }); MinimapMetadata.GetMetadata().AddOrUpdateUserInfo(new MinimapMetadata.MinimapUserInfo() { userId = users[0], worldPosition = Vector3.zero }); MinimapMetadata.GetMetadata().AddOrUpdateUserInfo(new MinimapMetadata.MinimapUserInfo() { userId = users[1], worldPosition = Vector3.zero }); Assert.IsTrue(GetVisibleChildren(listView.contentPlayers) == 2, "listView.content.childCount != 2"); Assert.IsTrue(listView.availableElements.Count == 0, "listView.availableElements.Count != 0"); MinimapMetadata.GetMetadata().RemoveUserInfo(users[1]); Assert.IsTrue(GetVisibleChildren(listView.contentPlayers) == 1, "listView.content.childCount != 1"); Assert.IsTrue(listView.availableElements.Count == 1, "listView.availableElements.Count != 1"); MinimapMetadata.GetMetadata().RemoveUserInfo(users[0]); Assert.IsTrue(GetVisibleChildren(listView.contentPlayers) == 0, "listView.content.childCount != 0"); Assert.IsTrue(listView.availableElements.Count == 2, "listView.availableElements.Count != 2"); MinimapMetadata.GetMetadata().AddOrUpdateUserInfo(new MinimapMetadata.MinimapUserInfo() { userId = users[2], worldPosition = Vector3.zero }); Assert.IsTrue(GetVisibleChildren(listView.contentPlayers) == 1, "listView.content.childCount != 1"); Assert.IsTrue(listView.availableElements.Count == 1, "listView.availableElements.Count != 1"); yield break; }
void Initialize(IUsersAroundListHUDListView view) { usersListView = view; usersListView.OnRequestMuteUser += OnMuteUser; usersListView.OnRequestMuteGlobal += OnMuteAll; MinimapMetadata.GetMetadata().OnUserInfoUpdated += MapRenderer_OnUserInfoUpdated; MinimapMetadata.GetMetadata().OnUserInfoRemoved += MapRenderer_OnUserInfoRemoved; }
public IEnumerator DisplayParcelOfInterestIconsProperly() { var sceneInfo = new MinimapMetadata.MinimapSceneInfo(); sceneInfo.name = "important scene"; sceneInfo.isPOI = true; sceneInfo.parcels = new List <Vector2Int>() { new Vector2Int() { x = 0, y = 0 }, new Vector2Int() { x = 0, y = 1 }, new Vector2Int() { x = 1, y = 0 }, new Vector2Int() { x = 1, y = 1 } }; MinimapMetadata.GetMetadata().AddSceneInfo(sceneInfo); var sceneInfo2 = new MinimapMetadata.MinimapSceneInfo(); sceneInfo2.name = "non-important scene"; sceneInfo2.isPOI = false; sceneInfo2.parcels = new List <Vector2Int>() { new Vector2Int() { x = 5, y = 0 }, }; MinimapMetadata.GetMetadata().AddSceneInfo(sceneInfo2); MapSceneIcon[] icons = MapRenderer.i.GetComponentsInChildren <MapSceneIcon>(); Assert.AreEqual(1, icons.Length, "Only 1 icon is marked as POI, but 2 icons were spawned"); Assert.AreEqual(sceneInfo.name, icons[0].title.text); Assert.AreEqual(new Vector3(3010, 3010, 0), icons[0].transform.localPosition); yield return(null); }
public void ReactToPlayerCoordsChange() { const string sceneName = "SCENE_NAME"; MinimapMetadata.GetMetadata().AddSceneInfo( new MinimapMetadata.MinimapSceneInfo { parcels = new List <Vector2Int> { new Vector2Int(-77, -77) }, name = sceneName }); CommonScriptableObjects.playerCoords.Set(new Vector2Int(-77, -77)); Assert.AreEqual(sceneName, navmapView.currentSceneNameText.text); Assert.AreEqual("-77,-77", navmapView.currentSceneCoordsText.text); }
void Initialize(IUsersAroundListHUDListView view) { usersListView = view; usersListView.OnRequestMuteUser += OnMuteUser; usersListView.OnRequestMuteGlobal += OnMuteAll; usersListView.OnGoToCrowdPressed += OnGoToCrowd; usersListView.OnOpen += OnListOpen; MinimapMetadata.GetMetadata().OnUserInfoUpdated += MapRenderer_OnUserInfoUpdated; MinimapMetadata.GetMetadata().OnUserInfoRemoved += MapRenderer_OnUserInfoRemoved; CommonScriptableObjects.rendererState.OnChange += OnRendererStateChanged; profile.OnUpdate += OnUserProfileUpdate; }
private void Awake() { i = this; NAVMAP_CHUNK_LAYER = LayerMask.NameToLayer("NavmapChunk"); MinimapMetadata.GetMetadata().OnSceneInfoUpdated += MapRenderer_OnSceneInfoUpdated; ParcelHighlightButton.onClick.AddListener(() => { ClickMousePositionParcel(); }); playerWorldPosition.OnChange += OnCharacterMove; playerRotation.OnChange += OnCharacterRotate; parcelHighlightImage.rectTransform.localScale = new Vector3(parcelHightlightScale, parcelHightlightScale, 1f); parcelHoldCountdown = parcelHoldTimeInSeconds; }
/// <summary> /// Dispose HUD controller /// </summary> public void Dispose() { ReportMuteStatuses(); if (updateMuteStatusRoutine != null) { CoroutineStarter.Stop(updateMuteStatusRoutine); } MinimapMetadata.GetMetadata().OnUserInfoUpdated -= MapRenderer_OnUserInfoUpdated; MinimapMetadata.GetMetadata().OnUserInfoRemoved -= MapRenderer_OnUserInfoRemoved; usersListView?.Dispose(); if (usersButtonView != null) { usersButtonView.OnClick -= ToggleVisibility; } }
public IEnumerator DisplayAndUpdateUserIconProperly() { Vector3 initialPosition = new Vector3(100, 0, 50); Vector3 modifiedPosition = new Vector3(150, 0, -30); var userInfo = new MinimapMetadata.MinimapUserInfo(); userInfo.userId = "testuser"; userInfo.worldPosition = initialPosition; // Create an user icon MinimapMetadata.GetMetadata().AddOrUpdateUserInfo(userInfo); MapSceneIcon[] icons = MapRenderer.i.GetComponentsInChildren <MapSceneIcon>(); Assert.AreEqual(1, icons.Length, "There should be only 1 user icon"); Vector2 iconGridPosition = DCL.Helpers.Utils.WorldToGridPositionUnclamped(initialPosition); Assert.AreEqual(DCL.Helpers.MapUtils.GetTileToLocalPosition(iconGridPosition.x, iconGridPosition.y), icons[0].transform.localPosition); // Modifify the position of the user icon userInfo.worldPosition = modifiedPosition; MinimapMetadata.GetMetadata().AddOrUpdateUserInfo(userInfo); icons = MapRenderer.i.GetComponentsInChildren <MapSceneIcon>(); Assert.AreEqual(1, icons.Length, "There should still be the same user icon"); iconGridPosition = DCL.Helpers.Utils.WorldToGridPositionUnclamped(modifiedPosition); Assert.AreEqual(DCL.Helpers.MapUtils.GetTileToLocalPosition(iconGridPosition.x, iconGridPosition.y), icons[0].transform.localPosition); // Remove the user icon MinimapMetadata.GetMetadata().RemoveUserInfo(userInfo.userId); icons = MapRenderer.i.GetComponentsInChildren <MapSceneIcon>(); Assert.AreEqual(0, icons.Length, "There should not be any user icon"); yield return(null); }
public void CloseWhenCloseButtonIsClicked() { var sceneInfo = new MinimapMetadata.MinimapSceneInfo() { name = "foo", owner = null, description = "", isPOI = false, parcels = new List <Vector2Int>() { new Vector2Int(10, 10), new Vector2Int(10, 11), new Vector2Int(10, 12) } }; MinimapMetadata.GetMetadata().Clear(); MinimapMetadata.GetMetadata().AddSceneInfo(sceneInfo); navmapToastView.Populate(new Vector2Int(10, 11), sceneInfo); Assert.IsTrue(navmapToastView.gameObject.activeSelf); navmapToastView.OnCloseClick(); Assert.IsFalse(navmapToastView.gameObject.activeSelf); }
void Start() { mapMetadata = MinimapMetadata.GetMetadata(); closeButton.onClick.AddListener(() => { ToggleNavMap(); Utils.UnlockCursor(); }); scrollRect.onValueChanged.AddListener((x) => { if (!isOpen) { return; } MapRenderer.i.atlas.UpdateCulling(); toastView.OnCloseClick(); }); toggleNavMapDelegate = (x) => { if (!Input.GetKeyDown(KeyCode.Escape) || isOpen) { ToggleNavMap(); } }; toggleNavMapAction.OnTriggered += toggleNavMapDelegate; toastView.OnGotoClicked += () => ToggleNavMap(true); MapRenderer.OnParcelClicked += TriggerToast; MapRenderer.OnParcelHold += TriggerToast; MapRenderer.OnParcelHoldCancel += () => { toastView.OnCloseClick(); }; CommonScriptableObjects.playerCoords.OnChange += UpdateCurrentSceneData; Initialize(); }
public ExploreMiniMapDataController() { MinimapMetadata.GetMetadata().OnSceneInfoUpdated += OnSceneInfoUpdated; }
public void Dispose() { MinimapMetadata.GetMetadata().OnSceneInfoUpdated -= OnSceneInfoUpdated; pendingSceneData.Clear(); }
private void OnPlayerCoordsChange(Vector2Int current, Vector2Int previous) { UpdatePlayerPosition(current); UpdateSceneName(MinimapMetadata.GetMetadata().GetSceneInfo(current.x, current.y)?.name); }