This repository has been archived on 2020-09-30. You can view files and clone it, but cannot push or open issues or pull requests.
2020-07-14 21:28:13 +00:00
|
|
|
|
class_name Coordinates
|
|
|
|
|
|
|
|
|
|
static func as_string(coord: Vector2, include_subcoord: bool = false) -> String:
|
|
|
|
|
var x = floor(coord.x)
|
|
|
|
|
var y = floor(coord.y)
|
2020-07-27 09:27:19 +00:00
|
|
|
|
var main = as_string_parts(coord)
|
|
|
|
|
var sector_name = main[0] + main[1]
|
2020-07-14 21:28:13 +00:00
|
|
|
|
if include_subcoord:
|
2020-07-23 09:12:07 +00:00
|
|
|
|
sector_name += ".%02d/%02d" % [(coord.x - x) * 100, (coord.y - y) * 100]
|
2020-07-14 21:28:13 +00:00
|
|
|
|
return sector_name
|
|
|
|
|
|
2020-07-27 09:27:19 +00:00
|
|
|
|
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]
|
|
|
|
|
|
|
|
|
|
|
2020-07-14 21:28:13 +00:00
|
|
|
|
static func to_letter(num: int) -> String:
|
|
|
|
|
#var letters = "ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ"
|
|
|
|
|
var letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
|
|
|
|
if num == 0:
|
|
|
|
|
return "Α"
|
|
|
|
|
elif num < 0:
|
|
|
|
|
letters = "αβγδεζηθικλμνξοπρστυφχψω"
|
2020-07-22 15:34:04 +00:00
|
|
|
|
if num < 0:
|
|
|
|
|
num = -num
|
2020-07-14 21:28:13 +00:00
|
|
|
|
var out = ""
|
|
|
|
|
var base = letters.length()
|
|
|
|
|
while num > 0:
|
2020-07-20 09:15:39 +00:00
|
|
|
|
out = letters.substr(num % base, 1) + out
|
2020-07-14 21:28:13 +00:00
|
|
|
|
num /= base
|
|
|
|
|
return out
|