50 lines
1.7 KiB
C#
50 lines
1.7 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|