Рефактор.

This commit is contained in:
sasha80
2024-05-29 11:09:57 +03:00
parent 0cd7464969
commit bf1968c51a
2 changed files with 54 additions and 33 deletions

View File

@@ -15,7 +15,7 @@ func type_is_num(val) -> bool: return (typeof(val) == TYPE_INT) or (typeof(val)
func radians(val: float): return (val * PI) / 180.0
## Возвращает значение из байтового массива в 16 битном слове[br]
## Возвращает значение из байтового массива в 16 битном слове.[br]
## [i]Следует использовать встроенные в[/i] [b]PackedByteArray[/b] [i]методы вместо этой функции.[/i]
func ibytes_to_word(buf: PackedByteArray, i: int) -> int: return buf[i] + (buf[i + 1] * 256)
@@ -25,7 +25,46 @@ func hypot(x: float, y: float) -> float: return sqrt(x * x + y * y)
## Проверяет пересечение диапазона [param x1], [param x2] с диапазоном [param y1], [param y2]
func is_overlap(x1, x2, y1, y2): return max(x1, y1) <= min(x2, y2)
func is_overlap(x1, x2, y1, y2) -> bool: return max(x1, y1) <= min(x2, y2)
func _check_index(obj, index) -> bool:
if (obj is Dictionary) and not obj.has(index):
return false
elif (obj is Array) and (index is int):
if index < 0 and index >= obj.size():
return false
return true
## Возвращает значение поля хранящегося по указанному пути внутри объекта.[br]
## [param obj] - Объект в котором хранится поле, должен быть [b]Dictionary[/b].[br]
## [param paths] - Массив содержащий путь к полю значения, включая его имя[br]
## [param ret_val] - Массив из одного элемента. После вызова, содержит значение искомого поля.[br]
func get_value_by_path(obj, paths: Array, ret_val: Array) -> bool:
var index = paths.pop_at(0)
if paths.size():
if _check_index(obj, index):
get_value_by_path(obj[index], paths, ret_val)
else:
return false
else:
if _check_index(obj, index):
ret_val[0] = obj[index]
else:
return false
return true
## Возвращает часть от входной строки ограниченную индексами символов.[br]
## [param s_in] - Входная строка.[br]
## [param s_out] - Массив содержащий выходную строку.[br]
## [param i0] - Индекс начала части строки.[br]
## [param i1] - Индекс конца части строки. Возвращает все символы до этого индекса.
func get_string_slice(s_in: String, s_out: Array, i0: int, i1: int):
for i in range(i0, i1):
if s_in[i] != '\'':
s_out[0] += s_in[i]
## Производит преобразование из декартовой в полярную систему координат