public void GenerateLevelElements(LevelElementsContainer elementsGroup) { if (LevelElementsGenerator) { LevelElementsGenerator.Generate(elementsGroup); } }
public void Generate(LevelElementsContainer elementsGroup) { GetComponentsInChildren(false, _allElements); var rowCount = LevelGrind.Cells.GetLength(1); for (var rowIndex = 1; rowIndex < rowCount; rowIndex++) { var gridRow = GetGridRow(rowIndex); if (gridRow.Exists(IsIntersectsWithElement)) { continue; } var nextGridRow = GetGridRow(rowIndex - 1); if (nextGridRow.Exists(IsIntersectsWithElement)) { continue; } bool trySpawnElement; do { trySpawnElement = TrySpawnElement(elementsGroup.GetRandomObject(), gridRow); } while (trySpawnElement); elementsGroup.RandomizeObjects.ForEach(element => TrySpawnElement(element, gridRow)); } }