public List<Hex3D> getNeighbors()
{
// -1, 1; 0, 1; 0, -1; 1, 0;, -1,0; 1,-1;
if (neighbors != null) { return neighbors; }
neighbors = new List<Hex3D>(6);
Hex3D n;
n = hexgrid.getHex(x - 1, y + 1);
if (n != null && n.passable) { neighbors.Add(n); }
n = hexgrid.getHex(x , y + 1);
if (n != null && n.passable) { neighbors.Add(n); }
n = hexgrid.getHex(x , y - 1);
if (n != null && n.passable) { neighbors.Add(n); }
n = hexgrid.getHex(x + 1, y);
if (n != null && n.passable) { neighbors.Add(n); }
n = hexgrid.getHex(x - 1, y);
if (n != null && n.passable) { neighbors.Add(n); }
n = hexgrid.getHex(x + 1, y - 1);
if (n != null && n.passable) { neighbors.Add(n); }
return neighbors;
}