(3dc4135ce) v0.9.5.1

This commit is contained in:
Regalis
2019-11-21 18:22:25 +01:00
parent b39922a074
commit 5c95c53118
287 changed files with 12655 additions and 5048 deletions
@@ -4,20 +4,34 @@ using System.Linq;
namespace Barotrauma
{
class ConditionalSprite : Sprite
partial class ConditionalSprite
{
public readonly List<PropertyConditional> conditionals = new List<PropertyConditional>();
public bool IsActive => Target != null && conditionals.All(c => c.Matches(Target));
readonly ISerializableEntity Target;
public ISerializableEntity Target { get; private set; }
public Sprite Sprite { get; private set; }
public DeformableSprite DeformableSprite { get; private set; }
public Sprite ActiveSprite => Sprite ?? DeformableSprite.Sprite;
public ConditionalSprite(XElement element, ISerializableEntity target, string path = "", string file = "") : base(element, path, file)
public ConditionalSprite(XElement element, ISerializableEntity target, string path = "", string file = "", bool lazyLoad = false)
{
Target = target;
foreach (XElement subElement in element.Elements())
{
foreach (XAttribute attribute in subElement.Attributes())
switch (subElement.Name.ToString().ToLowerInvariant())
{
conditionals.Add(new PropertyConditional(attribute));
case "conditional":
foreach (XAttribute attribute in subElement.Attributes())
{
conditionals.Add(new PropertyConditional(attribute));
}
break;
case "sprite":
Sprite = new Sprite(subElement, path, file, lazyLoad: lazyLoad);
break;
case "deformablesprite":
DeformableSprite = new DeformableSprite(subElement, filePath: path, lazyLoad: lazyLoad);
break;
}
}
}