Calculate actor preview bounds directly.
This commit is contained in:
committed by
RoosterDragon
parent
7bf3d5d7f6
commit
2794b14f52
@@ -57,16 +57,13 @@ namespace OpenRA.Mods.Common.Widgets
|
||||
PreviewOffset = int2.Zero;
|
||||
IdealPreviewSize = int2.Zero;
|
||||
|
||||
var r = preview
|
||||
.SelectMany(p => p.Render(worldRenderer, WPos.Zero))
|
||||
.OrderBy(WorldRenderer.RenderableScreenZPositionComparisonKey)
|
||||
.Select(rr => rr.PrepareRender(worldRenderer));
|
||||
var r = preview.SelectMany(p => p.ScreenBounds(worldRenderer, WPos.Zero));
|
||||
|
||||
if (r.Any())
|
||||
{
|
||||
var b = r.First().ScreenBounds(worldRenderer);
|
||||
var b = r.First();
|
||||
foreach (var rr in r.Skip(1))
|
||||
b = Rectangle.Union(b, rr.ScreenBounds(worldRenderer));
|
||||
b = Rectangle.Union(b, rr);
|
||||
|
||||
IdealPreviewSize = new int2(b.Width, b.Height);
|
||||
PreviewOffset = -new int2(b.Left, b.Top) - IdealPreviewSize / 2;
|
||||
|
||||
Reference in New Issue
Block a user