public static ShardID Decode(string str) { string[] parts = str.Split('r'); if (parts.Length != 2) { throw new FormatException("Expected two parts in vector expression '" + str + '\''); } return(new ShardID( Int3.Decode(parts[0]), int.Parse(parts[1]) )); }