public void ResetRoad() { QuadPresenter firstQuad = _quads.Peek(); Vector2 newQuadPos = GetRandomDirection(); firstQuad.QuadModel.Position.Value = newQuadPos; firstQuad.gameObject.SetActive(true); RearrangeQuad(firstQuad); if (!CanSpawnDiamond()) { return; } DiamondPresenter diamond = ResetDiamondPosition(); if (diamond != null) { diamond.DiamondModel.Position.Value = newQuadPos; diamond.gameObject.SetActive(true); diamond.transform.SetParent(firstQuad.transform); } else { DiamondPresenter diamondPresenter = _factory.Create(newQuadPos); diamondPresenter.transform.SetParent(firstQuad.transform); AddDiamond(diamondPresenter); } }
private void GenerateDiamonds(Vector2 position, Transform parentTransform) { if (!_roadModel.CanSpawnDiamond()) { return; } DiamondPresenter diamondPresenter = _diamondFactory.Create(position); diamondPresenter.transform.SetParent(parentTransform); _roadModel.AddDiamond(diamondPresenter); }
public DiamondPresenter ResetDiamondPosition() { DiamondPresenter diamond = _diamonds.Peek(); if (!diamond.gameObject.activeInHierarchy) { AddDiamond(_diamonds.Dequeue()); return(diamond); } else { return(null); } }
public void AddDiamond(DiamondPresenter diamond) { _diamonds.Enqueue(diamond); }