Encontrar celdas dentro del rango en una cuadrícula hexagonal

Primero: sé que estoy siendo súper denso aquí. Con eso fuera del camino, estoy tratando de escribir una implementación en C # de este algoritmo: var results = [] for each -N ≤ dx ≤ N: for each max(-N, -dx-N) ≤ dy ≤ min(N, -dx+N): var dz = -dx-dy results.append(cube_add(center, Cube(dx, dy,...