mirror of
https://github.com/Steffo99/pineapple-surf.git
synced 2024-11-25 09:14:18 +00:00
53 lines
1.6 KiB
GDScript3
53 lines
1.6 KiB
GDScript3
|
extends Node
|
||
|
|
||
|
enum TERNARY {
|
||
|
TRUE,
|
||
|
FALSE,
|
||
|
NONE
|
||
|
}
|
||
|
|
||
|
static func bool_to_sign(b: bool):
|
||
|
return 1 if b else -1
|
||
|
|
||
|
static func map(v: float, i_start: float, i_end: float, f_start: float, f_end: float, clamped := false) -> float:
|
||
|
var output := remap(v, i_start, i_end, f_start, f_end)
|
||
|
return clamp(output, f_start, f_end) if clamped else output
|
||
|
|
||
|
static func vec3_horizontal(v: Vector3) -> Vector2:
|
||
|
return vec3_remove_axis(v, Vector3.AXIS_Y)
|
||
|
|
||
|
static func vec3_remove_axis(v: Vector3, axis : int = Vector3.AXIS_Y) -> Vector2:
|
||
|
match axis:
|
||
|
Vector3.AXIS_X: return Vector2(v.y, v.z)
|
||
|
Vector3.AXIS_Y: return Vector2(v.x, v.z)
|
||
|
Vector3.AXIS_Z: return Vector2(v.x, v.y)
|
||
|
return Vector2.ZERO
|
||
|
|
||
|
static func vec3_deg2rad(v: Vector3):
|
||
|
return Vector3(deg_to_rad(v.x), deg_to_rad(v.y), deg_to_rad(v.z))
|
||
|
|
||
|
static func vec2_deg2rad(v: Vector2):
|
||
|
return Vector2(deg_to_rad(v.x), deg_to_rad(v.y))
|
||
|
|
||
|
#static func round_vec2(v : Vector2, digits : int = 3):
|
||
|
# return Vector2(stepify(v.x, pow(10, -digits)), stepify(v.y, pow(10, -digits)))
|
||
|
|
||
|
static func get_global_pos(obj: Node3D) -> Vector3:
|
||
|
return obj.global_transform.origin
|
||
|
|
||
|
static func get_dir_vector(obj: Node3D, axis := Vector3.AXIS_Z) -> Vector3:
|
||
|
match axis:
|
||
|
Vector3.AXIS_X: return obj.transform.basis.x
|
||
|
Vector3.AXIS_Y: return obj.transform.basis.y
|
||
|
Vector3.AXIS_Z: return obj.transform.basis.z
|
||
|
return Vector3.ZERO
|
||
|
|
||
|
static func delete_children(node):
|
||
|
for n in node.get_children():
|
||
|
n.queue_free()
|
||
|
|
||
|
static func log_line(obj: Node, msg: String):
|
||
|
var time = Time.get_time_dict_from_system()
|
||
|
var time_str = "%02d:%02d:%02d" % [time.hour, time.minute, time.second]
|
||
|
print("@%s [%s]: %s" % [time_str, obj.name, msg])
|