Fix some MapPainter warnings (#17639)

This commit is contained in:
metalgearsloth
2023-06-26 01:56:20 +10:00
committed by GitHub
parent 09d327cc99
commit c82d1b437e
5 changed files with 44 additions and 44 deletions

View File

@@ -38,23 +38,24 @@ public sealed class EntityPainter
// TODO cache this shit what are we insane
entities.Sort(Comparer<EntityData>.Create((x, y) => x.Sprite.DrawDepth.CompareTo(y.Sprite.DrawDepth)));
var xformSystem = _sEntityManager.System<SharedTransformSystem>();
foreach (var entity in entities)
{
Run(canvas, entity);
Run(canvas, entity, xformSystem);
}
Console.WriteLine($"{nameof(EntityPainter)} painted {entities.Count} entities in {(int) stopwatch.Elapsed.TotalMilliseconds} ms");
}
public void Run(Image canvas, EntityData entity)
public void Run(Image canvas, EntityData entity, SharedTransformSystem xformSystem)
{
if (!entity.Sprite.Visible || entity.Sprite.ContainerOccluded)
{
return;
}
var worldRotation = _sEntityManager.GetComponent<TransformComponent>(entity.Sprite.Owner).WorldRotation;
var worldRotation = xformSystem.GetWorldRotation(entity.Owner);
foreach (var layer in entity.Sprite.AllLayers)
{
if (!layer.Visible)
@@ -70,7 +71,7 @@ public sealed class EntityPainter
var rsi = layer.ActualRsi;
Image image;
if (rsi == null || rsi.Path == null || !rsi.TryGetState(layer.RsiState, out var state))
if (rsi == null || !rsi.TryGetState(layer.RsiState, out var state))
{
image = _errorImage;
}
@@ -89,7 +90,7 @@ public sealed class EntityPainter
image = image.CloneAs<Rgba32>();
(int, int, int, int) GetRsiFrame(RSI? rsi, Image image, EntityData entity, ISpriteLayer layer, int direction)
static (int, int, int, int) GetRsiFrame(RSI? rsi, Image image, EntityData entity, ISpriteLayer layer, int direction)
{
if (rsi is null)
return (0, 0, EyeManager.PixelsPerMeter, EyeManager.PixelsPerMeter);
@@ -115,7 +116,7 @@ public sealed class EntityPainter
var rect = new Rectangle(x, y, width, height);
if (!new Rectangle(Point.Empty, image.Size()).Contains(rect))
{
Console.WriteLine($"Invalid layer {rsi!.Path}/{layer.RsiState.Name}.png for entity {_sEntityManager.ToPrettyString(entity.Sprite.Owner)} at ({entity.X}, {entity.Y})");
Console.WriteLine($"Invalid layer {rsi!.Path}/{layer.RsiState.Name}.png for entity {_sEntityManager.ToPrettyString(entity.Owner)} at ({entity.X}, {entity.Y})");
return;
}