public Rectangle GetRectangle(LevelObject levelObject)
{
int left = int.MaxValue;
int top = int.MaxValue;
int right = int.MinValue;
int bottom = int.MinValue;
foreach (var levelObjectPieceLayoutPiece in Pieces)
{
var piece = levelObject.Pieces[levelObjectPieceLayoutPiece.PieceIndex];
var asset = levelObject.Assets[piece.AssetIndex];
var frame = asset.Frames[piece.FrameIndex];
var pieceX = levelObjectPieceLayoutPiece.X - frame.OffsetX;
var pieceY = levelObjectPieceLayoutPiece.Y - frame.OffsetY;
var pieceWidth = frame.Width;
var pieceHeight = frame.Height;
if (pieceX < left)
{
left = pieceX;
}
if (pieceY < top)
{
top = pieceY;
}
if (pieceX + pieceWidth > right)
{
right = pieceX + pieceWidth;
}
if (pieceY + pieceHeight > bottom)
{
bottom = pieceY + pieceHeight;
}
}
return new Rectangle(left, top, right - left, bottom - top);
}
}