class_name Coordinates

static func as_string(coord: Vector2, include_subcoord: bool = false) -> String:
	var x := floor(coord.x)
	var y := floor(coord.y)
	var main := as_string_parts(coord)
	var sector_name := str(main[0]) + str(main[1])
	if include_subcoord:
		sector_name += ".%02d/%02d" % [(coord.x - x) * 100, (coord.y - y) * 100]
	return sector_name

static func as_string_parts(coord: Vector2) -> Array:
	var x := floor(coord.x)
	var y := floor(coord.y)
	var x_str := to_letter(int(x))
	var y_str := ""
	if y < 0:
		y_str = to_letter(int(y))
	else:
		y_str = str(int(y))
	return [x_str, y_str]


static func to_letter(num: int) -> String:
	#var letters = "ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ"
	var letters := "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
	if num == 0:
		return "Α"
	elif num < 0:
		letters = "αβγδεζηθικλμνξοπρστυφχψω"
	if num < 0:
		num = -num
	var out := ""
	var base := letters.length()
	while num > 0:
		out = letters.substr(num % base, 1) + out
		num /= base
	return out
