void OnStateDataChanged(UIStateData data) { if (data.selectedProjectOption != m_CurrentSelectedProject) { if (m_LastHighlightedItem != null) { m_LastHighlightedItem.SetHighlight(false); m_LastHighlightedItem = null; } if (data.selectedProjectOption != Project.Empty) { var projectListItem = m_ProjectListItems.SingleOrDefault(e => e.room.project == data.selectedProjectOption); if (projectListItem != null) { projectListItem.SetHighlight(true); m_LastHighlightedItem = projectListItem; } m_ProjectOption.transform.SetParent(m_ScrollRect.transform); m_ProjectOption.transform.localPosition = GetOptionPosition(projectListItem); m_ProjectOption.transform.SetParent(m_ScrollRect.transform.parent); m_ScrollRect.StopMovement(); m_ProjectOption.InitProjectOption(data.selectedProjectOption); m_ProjectOption.gameObject.SetActive(true); m_TapDetector.SetActive(true); } else { m_ProjectOption.gameObject.SetActive(false); m_TapDetector.SetActive(false); } m_CurrentSelectedProject = data.selectedProjectOption; m_CurrentOptionIndex = data.projectOptionIndex; } else if (data.projectOptionIndex != m_CurrentOptionIndex) { m_ProjectOption.InitProjectOption(data.selectedProjectOption); m_CurrentOptionIndex = data.projectOptionIndex; } if (data.landingScreenFilterData != m_CurrentFilterData) { m_ScrollRect.verticalNormalizedPosition = 1; FilterProjectList(data.landingScreenFilterData); m_CurrentFilterData = data.landingScreenFilterData; if (data.landingScreenFilterData.projectServerType != m_CurrentServerType) { m_ProjectTabController.SelectButtonType(data.landingScreenFilterData.projectServerType); m_CurrentServerType = data.landingScreenFilterData.projectServerType; } } UpdateLayout(data); }
void HideProjectOptionDialog() { if (m_ProjectOption.IsVisible()) { m_ProjectOption.Hide(); ProjectListItem.HideOptionButtonHighlight(); m_TapDetector.SetActive(false); } }
void ShowProjectOptionDialog(ProjectListItem item, Project project) { if (!m_ProjectOption.IsVisible()) { var contentRectTransform = m_ScrollViewContent.GetComponent <RectTransform>(); var itemRectTransform = item.GetComponent <RectTransform>(); var desiredHeight = itemRectTransform.anchoredPosition.y + contentRectTransform.anchoredPosition.y + itemRectTransform.rect.height; m_ProjectOption.Show(project, desiredHeight, m_ScrollRectTransform.rect.height); ProjectListItem.ShowOptionButtonHighlight(item); m_TapDetector.SetActive(true); } }
Vector2 GetOptionPosition(ProjectListItem item) { var anchoredPositionY = m_ScrollViewContent.GetComponent <RectTransform>().anchoredPosition.y; var localPositionY = item.transform.localPosition.y + anchoredPositionY; var itemHeight = item.GetComponent <RectTransform>().rect.height; var adjustY = m_OptionPopupRectTransform.rect.height - itemHeight; if (localPositionY - m_OptionPopupRectTransform.rect.height < -m_ScrollRectTransform.rect.height) { return(new Vector2(m_ProjectOption.transform.localPosition.x, localPositionY + adjustY)); } else { return(new Vector2(m_ProjectOption.transform.localPosition.x, localPositionY)); } }
void OnProjectStateDataChanged(UIProjectStateData data) { if (data.activeProject != m_CurrentActiveProject) { m_CurrentActiveProject = data.activeProject; m_ActiveProjectListItem = m_ProjectListItems.FirstOrDefault(item => item.room.project == m_CurrentActiveProject); } if (m_ActiveProjectListItem != null && data.activeProjectThumbnail != m_ActiveProjectListItem.projectThumbnail) { m_ActiveProjectListItem.projectThumbnail = data.activeProjectThumbnail; } if (data.projectSortData != m_CurrentProjectSortData) { m_CurrentProjectSortData = data.projectSortData; SortProjects(); } }
void OnProjectStateDataChanged(UIProjectStateData data) { if (data.activeProject != m_CurrentActiveProject) { m_DialogButton.interactable = data.activeProject != Project.Empty; m_CurrentActiveProject = data.activeProject; m_ActiveProjectListItem = m_ProjectListItems.FirstOrDefault(item => item.project == m_CurrentActiveProject); } if (m_ActiveProjectListItem != null && data.activeProjectThumbnail != m_ActiveProjectListItem.projectThumbnail) { m_ActiveProjectListItem.projectThumbnail = data.activeProjectThumbnail; } if (data.projectSortMethod != m_CurrentProjectSortMethod) { m_CurrentProjectSortMethod = data.projectSortMethod; SortProjects(); } }
void OnProjectOptionButtonClick(ProjectListItem item, Project project) { ShowProjectOptionDialog(item, project); }
void OnActiveProjectChanged(Project newData) { m_ActiveProjectListItem = m_ProjectListItems.FirstOrDefault(item => item.room.project.projectId == newData.projectId); }