public Triplet <String> GetStrings(ITileSerializer serializer)
 {
     return(new Triplet <String> {
         // TODO: return "No Data" instead?
         X = _triplet.X == null || _triplet.X.Length == 0 ? "" : serializer.Serialize(this, TripletDimension.X),
         Y = _triplet.Y == null || _triplet.Y.Length == 0 ? "" : serializer.Serialize(this, TripletDimension.Y),
         Z = _triplet.Z == null || _triplet.Z.Length == 0 ? "" : serializer.Serialize(this, TripletDimension.Z),
     });
 }
 public static Tile FromStrings(Triplet <String> input, ITileSerializer serializer)
 {
     return(serializer.Deserialize(input));
 }
 public String GetString(ITileSerializer serializer)
 {
     return(serializer.Serialize(this));
 }
 public static Tile FromString(String input, ITileSerializer serializer)
 {
     return(serializer.Deserialize(input));
 }