using System; using System.IO; using System.Collections.Generic; using System.Linq; using UnityEngine; namespace RimWorldAnimationStudio { [Serializable] public class MultiDirectionalGraphic { public string bodyType = "None"; public SingleGraphic northGraphic = new SingleGraphic(); public SingleGraphic eastGraphic = new SingleGraphic(); public SingleGraphic southGraphic = new SingleGraphic(); public bool ShouldSerializenorthGraphic() { return string.IsNullOrEmpty(northGraphic.path) == false; } public bool ShouldSerializeeastGraphic() { return string.IsNullOrEmpty(eastGraphic.path) == false; } public bool ShouldSerializesouthGraphic() { return string.IsNullOrEmpty(southGraphic.path) == false; } public MultiDirectionalGraphic() { } public MultiDirectionalGraphic(string bodyType) { this.bodyType = bodyType; } public bool HasValidPathForDirection(CardinalDirection facing) { string path; switch (facing) { case CardinalDirection.North: path = northGraphic.path; break; case CardinalDirection.East: path = eastGraphic.path; break; case CardinalDirection.South: path = southGraphic.path; break; default: path = eastGraphic.path; break; } if (path == null || path.Any() == false || Path.GetExtension(path) != ".png") { return false; } if (File.Exists(path) == false && File.Exists(Path.GetFullPath(Path.Combine(Application.streamingAssetsPath, path))) == false) { return false; } return true; } } }