/* Genera un archivo con los datos del tablero de la partida que es serializable * a partir de un tablero no serializable. */ private static void generarTableroSerializable(Casilla[,] tablero, ref CasillaSerializable[,] tableroSerializable) { tableroSerializable = new CasillaSerializable[tablero.GetLength(0), tablero.GetLength(1)]; for (int i = 0; i < tablero.GetLength(0); i++) { for (int j = 0; j < tablero.GetLength(1); j++) { CasillaSerializable temp = new CasillaSerializable(); temp.coordsTexX = tablero[i, j].coordsTex.x; temp.coordsTexY = tablero[i, j].coordsTex.y; temp.coordsVertX = tablero[i, j].coordsVert.x; temp.coordsVertY = tablero[i, j].coordsVert.y; temp.coordsVertZ = tablero[i, j].coordsVert.z; temp.elementos = tablero[i, j].elementos; temp.habitat = tablero[i, j].habitat; if (tablero[i, j].pinceladas != null) { temp.pinceladas = new float[tablero[i, j].pinceladas.Length * 2]; for (int k = 0; k < tablero[i, j].pinceladas.Length; k++) { temp.pinceladas[k * 2] = tablero[i, j].pinceladas[k].x; temp.pinceladas[k * 2 + 1] = tablero[i, j].pinceladas[k].y; } } tableroSerializable[i, j] = temp; } } }
/* Genera un archivo con los datos del tablero de la partida que es serializable * a partir de un tablero no serializable. */ private static void generarTableroSerializable(Casilla[,] tablero, ref CasillaSerializable[,] tableroSerializable) { tableroSerializable = new CasillaSerializable[tablero.GetLength(0), tablero.GetLength(1)]; for (int i = 0; i < tablero.GetLength(0); i++) { for (int j = 0; j < tablero.GetLength(1); j++) { CasillaSerializable temp = new CasillaSerializable(); temp.coordsTexX = tablero[i,j].coordsTex.x; temp.coordsTexY = tablero[i,j].coordsTex.y; temp.coordsVertX = tablero[i,j].coordsVert.x; temp.coordsVertY = tablero[i,j].coordsVert.y; temp.coordsVertZ = tablero[i,j].coordsVert.z; temp.elementos = tablero[i,j].elementos; temp.habitat = tablero[i,j].habitat; if (tablero[i,j].pinceladas != null) { temp.pinceladas = new float[tablero[i,j].pinceladas.Length * 2]; for (int k = 0; k < tablero[i,j].pinceladas.Length; k++) { temp.pinceladas[k * 2] = tablero[i,j].pinceladas[k].x; temp.pinceladas[k * 2 + 1] = tablero[i,j].pinceladas[k].y; } } tableroSerializable[i,j] = temp; } } }
/* Construye un tablero usable con los datos del tablero serializado. */ private static void rehacerTablero(CasillaSerializable[,] tableroSerializable, ref Casilla[,] tablero) { tablero = new Casilla[tableroSerializable.GetLength(0), tableroSerializable.GetLength(1)]; for (int i = 0; i < tablero.GetLength(0); i++) { for (int j = 0; j < tablero.GetLength(1); j++) { Casilla temp = new Casilla(); Vector2 vect = new Vector2(tableroSerializable[i,j].coordsTexX, tableroSerializable[i,j].coordsTexY); temp.coordsTex = vect; Vector3 vect3 = new Vector3(tableroSerializable[i,j].coordsVertX, tableroSerializable[i,j].coordsVertY, tableroSerializable[i,j].coordsVertZ); temp.coordsVert = vect3; temp.elementos = tableroSerializable[i,j].elementos; temp.habitat = tableroSerializable[i,j].habitat; if (tableroSerializable[i,j].pinceladas != null) { temp.pinceladas = new Vector2[tableroSerializable[i,j].pinceladas.Length / 2]; for (int k = 0; k < temp.pinceladas.Length; k++) { Vector2 vect2 = new Vector2(tableroSerializable[i,j].pinceladas[k * 2], tableroSerializable[i,j].pinceladas[k * 2 + 1]); temp.pinceladas[k] = vect2; } } tablero[i,j] = temp; } } }