public static Vector2i FromString(string value, bool containsCoordinate, char seperator) { if (string.IsNullOrEmpty(value)) { throw new ArgumentNullException("value", "value isn't seted"); } if (containsCoordinate) { if (value.Contains("X") && value.Contains("Y")) { value = value.Remove(0, 1); value = value.Remove(value.IndexOf("Y"), 1); } if (value.Contains(":")) { value = value.Remove(0, 1); value = value.Remove(value.IndexOf(":"), 1); } } if (!value.Contains(seperator)) { int cor; if (int.TryParse(value, out cor)) { return(Vector2i.FromIndex(cor, 3, 3)); } } else { string[] splitedValue = value.Split(seperator); int x = 0; int y = 0; if (int.TryParse(splitedValue[0], out x) && int.TryParse(splitedValue[1], out y)) { return(new Vector2i(x, y)); } } return(null); }