TaskShortInfoWidget CreateTaskWidget(int index, ITask task) { PoolSettingsSO taskInfoWidgetPoolSet = task.GetShortInfoPoolSet(); var taskShortInfoWidget = taskInfoWidgetPoolSet.GetNewObject(_tasksSelector) as TaskShortInfoWidget; taskShortInfoWidget.Initialize(index, task); taskShortInfoWidget.OnClickSubscribe(ShowTask); taskShortInfoWidget.gameObject.name = taskInfoWidgetPoolSet.prefab.name + "_" + index; taskShortInfoWidget.gameObject.SetActive(true); // Todo: run widget show animation return(taskShortInfoWidget); }
public void ShowTask(ITask task) { HideTask(); if (_taskInfos.TryGetValue(task, out TaskShortInfoWidget shortWidget)) { _selectedIndex = shortWidget.index; } PoolSettingsSO taskWidgetPoolSet = task.GetTaskWidgetPoolSet(); _taskWidget = taskWidgetPoolSet.GetNewObject(_taskWidgetContainer) as BasicTaskWidget; _taskWidget.TaskUpdate(task); _taskWidget.gameObject.SetActive(true); // Todo: run widget show animation }
public void ShowMenu(ITask task) { if (_taskWidget != null) { _taskWidget.ReturnToPool(); } _task = task; PoolSettingsSO taskWidgetPoolSet = task.GetTaskWidgetPoolSet(); _taskWidget = taskWidgetPoolSet.GetNewObject(_taskWidgetContainer) as BasicTaskWidget; _taskWidget.TaskUpdate(task); TaskManager.instance.OnTaskChangedSubscribe(OnTaskChanged); gameObject.SetActive(true); // Todo: run window show animation _taskWidget.gameObject.SetActive(true); // Todo: run widget show animation }
TaskShortInfoWidget UpdateTaskWidget(ITask task) { if (_taskInfos.TryGetValue(task, out TaskShortInfoWidget taskShortInfoWidget)) { // Reinitialize widget in same place if it's objects key changed PoolSettingsSO taskInfoWidgetPoolSet = task.GetShortInfoPoolSet(); if (taskInfoWidgetPoolSet.key != taskShortInfoWidget.GetPoolSet().key) { int childIndex = taskShortInfoWidget.transform.GetSiblingIndex(); taskShortInfoWidget.ReturnToPool(); taskShortInfoWidget = CreateTaskWidget(childIndex, task); taskShortInfoWidget.transform.SetSiblingIndex(childIndex); _taskInfos[task] = taskShortInfoWidget; } taskShortInfoWidget.InfoUpdate(task); } else { taskShortInfoWidget = CreateTaskWidget(_taskInfos.Count, task); _taskInfos.Add(task, taskShortInfoWidget); } return(taskShortInfoWidget); }