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.
odyssey-old/Classes/Coordinates.gd

39 lines
1021 B
GDScript3
Raw Normal View History

class_name Coordinates
static func as_string(coord: Vector2, include_subcoord: bool = false) -> String:
2020-09-15 23:23:45 +00:00
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:
2020-09-15 23:23:45 +00:00
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 = "ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ"
2020-09-15 23:23:45 +00:00
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-09-15 23:23:45 +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
num /= base
return out