public void OnMessage(GoldBarsRemoved message) { while (_goldBars.Count > 0) { GoldBarModel goldBarModel = _goldBars.First().Key; MoveViewBackToPool(goldBarModel); } }
private void MoveViewBackToPool(GoldBarModel goldBarModel) { var goldBarView = _goldBars[goldBarModel]; goldBarView.gameObject.SetActive(false); _goldBars.Remove(goldBarModel); _goldBarsPool.Add(goldBarView); _controller.RemoveGoldBar(goldBarModel); }
public void Load() { if (PlayerPrefs.HasKey(StoreKey)) { var goldBarsCount = PlayerPrefs.GetInt(StoreKey); for (int i = 0; i < goldBarsCount; ++i) { var positionIndex = PlayerPrefs.GetInt($"{GoldBarStoreKeyPrefix}{i.ToString()}"); var goldBarModel = new GoldBarModel(positionIndex); _model.AddGoldBar(goldBarModel); } } }
private void CreateGoldBarView(GoldBarModel goldBarModel) { var goldBarController = new GoldBarController(goldBarModel); GoldBarView goldBarView; if (_goldBarsPool.Count > 0) { goldBarView = _goldBarsPool.First(); _goldBarsPool.Remove(goldBarView); } else { goldBarView = Instantiate(Resources.Load <GoldBarView>(PrefabPath.GoldBarView), transform); } var initialPosition = _fieldGrid.Grid[goldBarModel.PositionIndex]; goldBarView.gameObject.SetActive(true); goldBarView.transform.localPosition = initialPosition; goldBarView.Initialize(new GoldBarView.Data(_performer, goldBarController, initialPosition)); _goldBars.Add(goldBarModel, goldBarView); goldBarController.Listenable.AddListener <GoldBarCollected>(this); }
public void RemoveGoldBar(GoldBarModel goldBar) => _model.RemoveGoldBar(goldBar);
public void AddGoldBar(GoldBarModel goldBar) => _model.AddGoldBar(goldBar);
public GoldBarFound(GoldBarModel goldBarModel) { GoldBarModel = goldBarModel; }
public GoldBarCollected(GoldBarModel goldBarModel) { GoldBarModel = goldBarModel; }
public GoldBarController(GoldBarModel model) { _model = model; }