public IComponentInfo Load(XElement node, Project project) { var comp = new WeaponComponentInfo(); comp.Weapons = node.Elements("Weapon") .Select(x => { var w = new WeaponInfo() { Name = x.GetAttribute <string>("name"), EntityName = x.GetAttribute <string>("entity"), Ammo = x.TryAttribute <int?>("ammo"), Usage = x.TryAttribute <int?>("usage"), Palette = x.TryAttribute <int?>("palette") }; var meterNode = x.Element("Meter"); if (meterNode != null) { w.Meter = _meterReader.LoadMeter(meterNode, project.BaseDir); } return(w); }) .ToList(); return(comp); }
public IComponentInfo Load(XElement node, Project project) { var comp = new HealthComponentInfo(); comp.Max = node.TryAttribute <float>("max", node.TryElementValue <float>("Max")); comp.StartValue = node.TryAttribute <float?>("startValue"); XElement meterNode = node.Element("Meter"); if (meterNode != null) { comp.Meter = _meterReader.LoadMeter(meterNode, project.BaseDir); } comp.FlashFrames = node.TryAttribute("flash", node.TryElementValue <int>("Flash")); return(comp); }
protected void LoadBase(HandlerInfo handler, XElement node, string basePath) { handler.Name = node.RequireAttribute("name").Value; var spriteLoader = new SpriteXmlReader(); foreach (var spriteNode in node.Elements("Sprite")) { var info = new HandlerSpriteInfo(); info.Sprite = spriteLoader.LoadSprite(spriteNode, basePath); handler.Objects.Add(info.Name, info); } var meterLoader = new MeterXmlReader(new SceneBindingXmlReader()); foreach (var meterNode in node.Elements("Meter")) { var meter = meterLoader.LoadMeter(meterNode, basePath); handler.Objects.Add(meter.Name, meter); } }
protected void LoadBase(HandlerInfo handler, XElement node, string basePath) { handler.Name = node.RequireAttribute("name").Value; var spriteLoader = new SpriteXmlReader(); foreach (var spriteNode in node.Elements("Sprite")) { var info = new HandlerSpriteInfo(); info.Sprite = spriteLoader.LoadSprite(spriteNode, basePath); handler.Objects.Add(info.Name, info); } var meterLoader = new MeterXmlReader(new SceneBindingXmlReader()); foreach (var meterNode in node.Elements("Meter")) { var meter = meterLoader.LoadMeter(meterNode, basePath); handler.Objects.Add(meter.Name, meter); } }