MegaMan.Editor.Bll.SpriteModel.ForEntity C# (CSharp) Method

ForEntity() public static method

public static ForEntity ( EntityInfo entity, MegaMan.Editor.Bll.ProjectDocument project ) : SpriteModel
entity MegaMan.Common.Entities.EntityInfo
project MegaMan.Editor.Bll.ProjectDocument
return SpriteModel
        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);
        }