public void CopyFrom(TileObjectPreviewData copy)
{
_type = copy._type;
_style = copy._style;
_alternate = copy._alternate;
_random = copy._random;
_active = copy._active;
_size = copy._size;
_coordinates = copy._coordinates;
_objectStart = copy._objectStart;
_percentValid = copy._percentValid;
if (_data == null)
{
_data = new int[(int)copy._dataSize.X, (int)copy._dataSize.Y];
_dataSize = copy._dataSize;
}
else
Array.Clear(_data, 0, _data.Length);
if ((int)_dataSize.X < (int)copy._dataSize.X || (int)_dataSize.Y < (int)copy._dataSize.Y)
{
int X = (int)copy._dataSize.X > (int)_dataSize.X ? (int)copy._dataSize.X : (int)_dataSize.X;
int Y = (int)copy._dataSize.Y > (int)_dataSize.Y ? (int)copy._dataSize.Y : (int)_dataSize.Y;
_data = new int[X, Y];
_dataSize = new Point16(X, Y);
}
for (int index1 = 0; index1 < (int)copy._dataSize.X; ++index1)
{
for (int index2 = 0; index2 < (int)copy._dataSize.Y; ++index2)
_data[index1, index2] = copy._data[index1, index2];
}
}