Example #1
0
 public void GenerateLevelElements(LevelElementsContainer elementsGroup)
 {
     if (LevelElementsGenerator)
     {
         LevelElementsGenerator.Generate(elementsGroup);
     }
 }
Example #2
0
        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));
            }
        }