void DoPanelClose(VehicleDetailsPanelView panelToClose) { string vid = panelToClose.GetVehicleId(); var disp = panelToClose.Close(); disp.Subscribe(_ => { if (_panels.TryRemove(vid, out var panel)) { panel.Dispose(); //Debug.Log("dispose pannello _panels.Count: " + _panels.Count); _scoreLabel.text = "Panels: " + _panels.Count.ToString(); RemoveOldPanels(); /* * Vehicle3D vehicle3d = _vehicles3D.GetItem(vid); * _vehicles3D.RemoveItem(vid); * vehicle3d?.Dispose(); */ } }); }
void OpenPanel(PanelOpenSignal signal) { //Debug.Log("[OpenPanel]"); var v = signal.SelectedVehicle; VehicleDetailsPanelView result = null; if (_panels.ContainsKey(v.Id)) { result = _panels[v.Id]; } if (result != null) { //Debug.Log("panello trovato"); if (result.Closing()) { //Debug.Log("panello in chiusura, lo riapro"); result.Show(); } else { //Debug.Log("panello da chiudere"); DoPanelClose(result); } } else { //Debug.Log("panello da creare e aprire"); //Debug.Log("_panels.Count: " + _panels.Count); VehicleDetailsPanelView newPanel = _panelFactory.Create(v); newPanel.transform.SetParent(_canvasTransform); newPanel.Show(); System.Random random = new System.Random(); int x = random.Next(-400, 400); int y = random.Next(-300, 300); newPanel.GetComponent <RectTransform>().anchoredPosition = new Vector2(x, y); if (_panels.TryAdd(v.Id, newPanel)) { //Debug.Log("panel added"); } //Debug.Log("after Add: _panels.Count=" + _panels.Count); /* * if(v.Avm) * { * Vehicle3D vehicle3D = null; * if(v.CodiceFamiglia==model.CodiceFamigliaEnum.EXTRAURBANO) * vehicle3D = _extraurbanoFactory.Create(v); * else * vehicle3D = _urbanoFactory.Create(v); * * // _vehicles3D.AddItem(v.Id, vehicle3D); * } */ } _scoreLabel.text = "Panels: " + _panels.Count.ToString(); RemoveOldPanels(); }
public PanelCloseSignal(VehicleDetailsPanelView panel) { Panel = panel; }