forked from joey/godottest
51 lines
1.2 KiB
GDScript
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
|