Esempio n. 1
0
        void CreateBarrierArea(BarrierAreaSpawnEvent spawnEvent)
        {
            GameObject             barrierAreaPrefab = spawnEvent.barrierAreaPrefab;
            Transform              parent            = spawnEvent.parent;
            Vector3                position          = spawnEvent.position;
            LinkedList <EcsEntity> row = spawnEvent.row;

            BarrierAreaSpawnEvent.InsertPosition insertPosition = spawnEvent.insertPositionInRow;

            GameObject barrierAreaInstance = InstantiateBarrierArea(barrierAreaPrefab, position, parent);
            EcsEntity  barrierAreaEntity   = CreateBarrierAreaEntity(barrierAreaInstance, barrierAreaPrefab);

            CreateBarrierEntities(barrierAreaEntity);
            GeneratePatterns(barrierAreaInstance);
            AddBarrierAreaToRow(barrierAreaEntity, row, insertPosition);
        }
        void SpawnBarrierArea(GameObject barrierAreaPrefab,
                              Vector3 position,
                              Transform parent,
                              LinkedList <EcsEntity> row,
                              BarrierAreaSpawnEvent.InsertPosition insertPosition)
        {
            EntityBuilder.Instance(_world)
            .CreateEntity()
            .AddComponent <BarrierAreaSpawnEvent>(out BarrierAreaSpawnEvent spawnEvent);

            spawnEvent.position          = position;
            spawnEvent.barrierAreaPrefab = barrierAreaPrefab;
            spawnEvent.parent            = parent;
            spawnEvent.row = row;
            spawnEvent.insertPositionInRow = insertPosition;
        }
Esempio n. 3
0
        void AddBarrierAreaToRow(EcsEntity barrierAreaEntity, LinkedList <EcsEntity> row, BarrierAreaSpawnEvent.InsertPosition insertPosition)
        {
            if (row == null)
            {
                row = new LinkedList <EcsEntity>();
                _barrierAreaMapFilter.Components1[0].map.AddFirst(row);
            }

            if (insertPosition == BarrierAreaSpawnEvent.InsertPosition.First)
            {
                row.AddFirst(barrierAreaEntity);
            }
            else if (insertPosition == BarrierAreaSpawnEvent.InsertPosition.Last)
            {
                row.AddLast(barrierAreaEntity);
            }
        }