AddEntity() public method

public AddEntity ( EntityInfo entity ) : void
entity MegaMan.Common.Entities.EntityInfo
return void
        public IIncludedObject Load(Project project, XElement xmlNode)
        {
            var info = new EntityInfo() {
                Name = xmlNode.RequireAttribute("name").Value,
                MaxAlive = xmlNode.TryAttribute<int>("maxAlive", 50),
                GravityFlip = xmlNode.TryElementValue<bool>("GravityFlip"),
                Components = new List<IComponentInfo>()
            };

            ReadEditorData(xmlNode, info);

            var deathNode = xmlNode.Element("Death");
            if (deathNode != null)
                info.Death = _effectReader.Load(deathNode);

            foreach (var compReader in ComponentReaders)
            {
                var element = compReader.NodeName != null ? xmlNode.Element(compReader.NodeName) : xmlNode;
                if (element != null)
                {
                    var comp = compReader.Load(element, project);
                    if (comp != null)
                        info.Components.Add(comp);
                }
            }

            if (info.PositionComponent == null)
                info.Components.Add(new PositionComponentInfo());

            if (info.MovementComponent == null && HasMovementEffects(info))
                info.Components.Add(new MovementComponentInfo() { EffectInfo = new MovementEffectPartInfo() });

            project.AddEntity(info);
            return info;
        }
Example #2
0
        public void Load(Project project, XElement xmlNode)
        {
            foreach (var node in xmlNode.Elements("Entity"))
            {
                var info = new EntityInfo() {
                    Name = node.RequireAttribute("name").Value,
                    MaxAlive = node.TryAttribute<int>("maxAlive", 50)
                };

                var editorData = node.Element("EditorData");
                if (editorData != null)
                {
                    info.EditorData = new EntityEditorData() {
                        DefaultSpriteName = editorData.TryAttribute<string>("defaultSprite"),
                        HideFromPlacement = editorData.TryAttribute<bool>("hide", false)
                    };
                }

                FilePath sheetPath = null;
                var sheetNode = node.Element("Tilesheet");
                if (sheetNode != null)
                    sheetPath = FilePath.FromRelative(sheetNode.Value, project.BaseDir);

                foreach (var spriteNode in node.Elements("Sprite"))
                {
                    if (sheetPath == null)
                    {
                        var sprite = GameXmlReader.LoadSprite(spriteNode, project.BaseDir);
                        info.Sprites.Add(sprite.Name ?? "Default", sprite);
                    }
                    else
                    {
                        var sprite = GameXmlReader.LoadSprite(spriteNode);
                        sprite.SheetPath = sheetPath;
                        info.Sprites.Add(sprite.Name ?? "Default", sprite);
                    }

                }

                project.AddEntity(info);
            }
        }