public Corner(CornerPiece piece, int orientation = 0) { Piece = piece; Orientation = orientation; }
void Initialize() { for(int x = 0; x < CUBE_SIZE; x++) { for(int y = 0; y < CUBE_SIZE; y++) { for(int z = 0; z < CUBE_SIZE; z++) { bool isXEdge = x == 0 || x == CUBE_SIZE - 1; bool isYEdge = y == 0 || y == CUBE_SIZE - 1; bool isZEdge = z == 0 || z == CUBE_SIZE - 1; int edgeSum = CountTrue(isXEdge, isYEdge, isZEdge); switch (edgeSum) { case 0: m_cube[x,y,z] = new EmptyPiece(x + CUBE_OFFSET, y + CUBE_OFFSET, z + CUBE_OFFSET); break; case 1: m_cube[x,y,z] = new CenterPiece(x + CUBE_OFFSET, y + CUBE_OFFSET, z + CUBE_OFFSET); break; case 2: m_cube[x,y,z] = new EdgePiece(x + CUBE_OFFSET, y + CUBE_OFFSET, z + CUBE_OFFSET); break; case 3: m_cube[x,y,z] = new CornerPiece(x + CUBE_OFFSET, y + CUBE_OFFSET, z + CUBE_OFFSET); break; } } } } }