public Vector3 CorrectPosition(Vector3 vector)
{
Node node = GetNodeFromLocation(vector);
if (node == null)
{
throw new Exception("could node find node for position " + vector.x + ", " + vector.y);
}
// perfect for non mind control
float yVariance = (float)node.listIndexY / (float)size_y;
float correctedY = - (yVariance + ((float)node.listIndexX % 2 == 1 ? ((((float)node.listIndexY + 1f) / (float)size_y) - yVariance) / 2f : 0f));
return new Vector3(vector.x, correctedY, vector.z);
}