void loadStructure() { loader.loadCsv(); var pieceSymbols = BoardUtil.switchXY(BoardUtil.flipY(loader.LoadedCsv)); var pieceList = new List <List <Piece> >(); int x = 0; int y = 0; foreach (var symbolRow in pieceSymbols) { pieceList.Add(new List <Piece>()); foreach (var symbol in symbolRow) { if (!_loadInfoDic.ContainsKey(symbol)) { pieceList[x].Add(null); y++; continue; } var loadInfo = _loadInfoDic[symbol]; var piece = initPiece(loadInfo, x, y); if (piece.hasAttribute <PawnAttribute>()) { piece.getAttribute <PawnAttribute>().setStartPos(new BoardVector(x, y)); } pieceList[x].Add(piece); y++; } y = 0; x++; } listBoard.initializeBoard(pieceList); }