1
0
forked from joey/godottest
Joey Eamigh 9989fab018
addons?
2025-10-10 14:07:23 -04:00

51 lines
1.2 KiB
GDScript

@tool
extends Node
class_name SS2D_Common_Functions
static func sort_z(a, b) -> bool:
if a.z_index < b.z_index:
return true
return false
static func sort_int_ascending(a: int, b: int) -> bool:
if a < b:
return true
return false
static func sort_int_descending(a: int, b: int) -> bool:
if a < b:
return false
return true
static func to_vector3(vector: Vector2) -> Vector3:
return Vector3(vector.x, vector.y, 0)
static func merge_arrays(arrays: Array) -> Array:
var new_array := []
for array: Array in arrays:
for v: Variant in array:
new_array.push_back(v)
return new_array
## Returns a cleared mesh object in the given buffer at the given index.
## If the index is out of bounds, creates and appends a new object.
## Used for caching and reusing SS2D_Mesh objects to prevent changing resource IDs even if there was
## no change which in turn causes VCS noise.
static func mesh_buffer_get_or_create(mesh_buffer: Array[SS2D_Mesh], idx: int) -> SS2D_Mesh:
var mesh: SS2D_Mesh
if idx < mesh_buffer.size():
mesh = mesh_buffer[idx]
mesh.clear() # Absolutely ensure working on a clean object
else:
mesh = SS2D_Mesh.new()
mesh_buffer.push_back(mesh)
return mesh