public void SerializeNodes(Node[] nodes, AstarSerializer serializer)
{
/** \todo Add check for mask == Save Node Positions. Can't use normal mask since it is changed by SerializeSettings */
GenerateMatrix ();
int maxValue = 0;
int minValue = 0;
for (int i=0;i<nodes.Length;i++) {
int val = nodes[i].position.y;
maxValue = val > maxValue ? val : maxValue;
minValue = val < minValue ? val : minValue;
}
int maxRange = maxValue > -minValue ? maxValue : -minValue;
if (maxRange <= System.Int16.MaxValue) {
//Int16
serializer.writerStream.Write ((byte)0);
for (int i=0;i<nodes.Length;i++) {
serializer.writerStream.Write ((System.Int16)(inverseMatrix.MultiplyPoint3x4 ((Vector3)nodes[i].position).y));
}
} else {
//Int32
serializer.writerStream.Write ((byte)1);
for (int i=0;i<nodes.Length;i++) {
serializer.writerStream.Write (inverseMatrix.MultiplyPoint3x4 ((Vector3)nodes[i].position).y);
}
}
/*for (int i=0;i<nodes.Length;i++) {
GridNode node = nodes[i] as GridNode;
if (node == null) {
Debug.LogError ("Serialization Error : Couldn't cast the node to the appropriate type - GridGenerator");
return;
}
serializer.writerStream.Write (node.index);
}*/
}