public void StartDeadPath(PathBlock startBlock) { if (_deadPathInProgress) return; int blockNumberInPath = _path.FindIndex(block => block == startBlock); for (int i = blockNumberInPath; i < _path.Count; i++) { _deathBlocksRightQueue.Enqueue(_path[i]); } for (int i = blockNumberInPath - 1; i >= 0; i--) { _deathBlocksLeftQueue.Enqueue(_path[i]); } _path.Clear(); _deadPathInProgress = true; }
public void ReplaceWithPath(PlaygroundBlock oldBlock) { var pathBlock = new PathBlock(this, oldBlock.PositionOnPlayground); Replace(oldBlock, pathBlock); _path.Add(pathBlock); }