Рефакторинг. Аннотации GDScript

This commit is contained in:
sasha80
2023-08-10 11:52:05 +03:00
parent 9f00bec488
commit 13df6fe1dc
5 changed files with 56 additions and 48 deletions

View File

@@ -2,6 +2,11 @@ extends Node
## Простые часто используемые функции
## Возвращает true, если val число, false - если иначе
func type_is_num(val) -> bool: return (typeof(val) == TYPE_INT) or (typeof(val) == typeof(0.0))
## Производит преобразование из угла в радианы
func radians(val: float): return (val * PI) / 180.0
@@ -34,7 +39,7 @@ func clip_value(val, val_min, val_max):
return val
## Возвращает массив с именами членов класса
## Возвращает массив с именами членов класса [param obj]
func get_members_names(obj: Object) -> Array:
var pl = obj.get_property_list()
var names: = Array()
@@ -42,16 +47,17 @@ func get_members_names(obj: Object) -> Array:
return names
## Проверяет, что заданный массив похож на ip-адрес
func assert_array_ipaddr(val: Array):
""" Выкидывает исключение, если массив не содержит ip-адрес """
assert(val.size() == 2)
assert(val[0] is String)
assert(val[1] is int)
assert((0 < val[1]) and (val[1] < 65536))
## Проверяет, что заданный массив [param val] похож на ip-адрес
func is_array_ipaddr(val: Array):
return (val.size() == 2) \
and (val[0] is String) \
and (val[1] is int) \
and (0 < val[1]) \
and (val[1] < 65536)
## Преобразует декартовые координаты в полярные
## Преобразует декартовые координаты в полярные. [param pos0]
## - координаты центра, [param pos] - координаты точки
func map_dec_to_rad(pos0: Vector2, pos: Vector2) -> Vector2:
var x1: float = pos.x - pos0.x
var y1: float = pos.y - pos0.y
@@ -64,11 +70,6 @@ func map_range(val: float, a0: float, a1: float, b0: float, b1: float) -> float:
return (((val - a0) * (b1 - b0)) / (a1 - a0)) + b0
## Возвращает true, если val число, false - если иначе
func type_is_num(val) -> bool:
return (typeof(val) == TYPE_INT) or (typeof(val) == typeof(0.0))
## Возвращает true, если точка внутри заданного полигона
func is_point_in_polygon(pos: Vector2, p: PackedVector2Array) -> bool:
var j: int = len(p) - 1
@@ -80,11 +81,8 @@ func is_point_in_polygon(pos: Vector2, p: PackedVector2Array) -> bool:
return odd_nodes > 0
## Устанавливает слово в байтовом массиве
## buf - Байтовый массив
## index - Индекс младшего байта слова в массиве
## val - Значение слова для записи в батовый массив
## return - Ничего
func set_wordi(buf: Array, index, val):
## Записывает слово [param val] в элемент байтовго массива [param buf]
## расположенный по индексу [param index]. Младшее слово
func set_wordi(buf: Array, index: int, val: int) -> void:
buf[index] = val & 0xff
buf[index + 1] = (val >> 8) & 0xff