public static SpriteModel ForEntity(EntityInfo entity, ProjectDocument project)
{
var hasSprites = entity.SpriteComponent != null && entity.SpriteComponent.Sprites.Any();
if (!hasSprites)
{
var allEffectParts = entity.StateComponent.States.SelectMany(s => s.Initializer.Parts.Concat(s.Logic.Parts).Concat(s.Triggers.SelectMany(t => t.Effect.Parts)));
var spawn = allEffectParts.OfType<SpawnEffectPartInfo>().Select(s => s.Name).FirstOrDefault();
if (spawn != null)
{
var spawnEntity = project.EntityByName(spawn);
return new OverlaySpriteModel(spawnEntity.DefaultSprite, "spawn.png");
}
}
return new SpriteModel(entity.DefaultSprite);
}