public MahjongMapData ConvertLoadedMap() { List <Vector3Int> pieces = new List <Vector3Int>(); for (int i = 0; i < horizontalSize; i++) { for (int p = 0; p < verticalSize; p++) { for (int u = 0; u < heightSize; u++) { if (map[i, p, u].piece) { pieces.Add(new Vector3Int(i, p, u)); } } } } MahjongMapData data = new MahjongMapData(pieces.Count, pieceSize); for (int i = 0; i < data.pieceCount; i++) { data.pieceHorizontalIndex[i] = pieces[i].x; data.pieceVerticalIndex[i] = pieces[i].y; data.pieceHeightIndex[i] = pieces[i].z; } return(data); }
public void LoadMap(MahjongMapData data) { if (data.pieceCount % 2 != 0) { Debug.LogError("Non-even map piece size. Cancelling..."); return; } UnloadMap(); for (int i = 0; i < data.pieceCount; i++) { TryPlace(new Vector3Int(data.pieceHorizontalIndex[i], data.pieceVerticalIndex[i], data.pieceHeightIndex[i])); } availableDebug = availablePieceLeadIndexes.Values.ToArray().Select(ind => map[ind.x, ind.y, ind.z].piece).ToList(); }