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; }
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); } }