private void AddWorkerListViewElement(SharedWorker playerWorker, ControlListView listView) { ListViewElementWorker element = UIWorkers.CreateWorkerListViewElement(playerWorker, WorkerListViewElementPrefab, TooltipComponent); Button buttonComponent = element.GetComponent <Button>(); if (null == WorkerListViewMap) { WorkerListViewMap = new Dictionary <SharedWorker, ListViewElementWorker>(); } if (listView == ListViewOtherPlayersWorkers) { MousePointerEvents mouseEvts = element.GetComponent <MousePointerEvents>(); mouseEvts.PointerDoubleClick += () => { if (true == SimulationManagerComponent.ControlledCompany.CanHireWorker) { OnButtonHireWorkerClick(); } }; } WorkerListViewMap.Add(playerWorker, element); listView.AddControl(element.gameObject); WorkersButtonSelector.AddButton(buttonComponent); }
private void AddWorkerListViewElement(SharedWorker worker, ControlListView listView) { ListViewElementWorker element = UIWorkers.CreateWorkerListViewElement(worker, WorkerListViewElementPrefab, TooltipComponent); Button buttonComponent = element.GetComponent <Button>(); MousePointerEvents mousePtrEvts = element.GetComponent <MousePointerEvents>(); mousePtrEvts.PointerDoubleClick += () => { if (listView == ListViewMarketWorkers && true == SimulationManagerComponent.ControlledCompany.CanHireWorker) { OnHireWorkerButtonClicked(); } }; if (null == WorkerListViewMap) { WorkerListViewMap = new Dictionary <SharedWorker, ListViewElementWorker>(); } listView.AddControl(element.gameObject); WorkerListViewMap.Add(worker, element); WorkersButtonSelector.AddButton(buttonComponent); worker.SalaryChanged += OnWorkerSalaryChanged; }
private void RemoveWorkerListViewElement(LocalWorker worker, ControlListView listView) { ListViewElementWorker element = UIWorkers.GetWorkerListViewElement(worker, listView); Button buttonComponent = element.GetComponent <Button>(); WorkersButtonsSelector.RemoveButton(buttonComponent); ListViewWorkers.RemoveControl(element.gameObject); worker.SatisfactionChanged -= OnWorkerSatisfactionChanged; }
private void RemoveWorkerListViewElement(SharedWorker worker, ControlListView listView) { ListViewElementWorker element = WorkerListViewMap.First(x => x.Key == worker).Value; Button buttonComponent = element.GetComponent <Button>(); listView.RemoveControl(element.gameObject); WorkerListViewMap.Remove(worker); WorkersButtonSelector.RemoveButton(buttonComponent); worker.SalaryChanged -= OnWorkerSalaryChanged; }
private ListViewElementWorker CreateWorkerListViewElement(LocalWorker companyWorker) { ListViewElementWorker element = UIWorkers.CreateWorkerListViewElement(companyWorker, WorkerListViewElementPrefab, TooltipComponent); element.Text.text = GetWorkerListViewElementText(companyWorker); Button buttonComponent = element.GetComponent <Button>(); WorkersButtonsSelector.AddButton(buttonComponent); ListViewWorkers.AddControl(element.gameObject); //List view element contains information about satisfaction so it should be updated whenever it changes companyWorker.SatisfactionChanged += OnWorkerSatisfactionChanged; return(element); }
private ListViewElementWorker CreateWorkerListViewElement(LocalWorker companyWorker) { ListViewElementWorker newElement = null; if (null != WorkerListViewElementsPool) { newElement = WorkerListViewElementsPool.GetObject(); } if (null == newElement) { newElement = UIWorkers.CreateWorkerListViewElement(companyWorker, ListViewWorkerElementPrefab, TooltipComponent); UIElementDrag drag = newElement.GetComponent <UIElementDrag>(); drag.DragParentTransform = gameObject.GetComponent <RectTransform>(); } newElement.gameObject.SetActive(true); newElement.Text.text = GetWorkerListViewElementText(companyWorker); newElement.Worker = companyWorker; return(newElement); }