Initial project sync
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
class_name ChartTrack
|
||||
extends Resource
|
||||
|
||||
@export var track_id: StringName = &""
|
||||
@export var track_type: StringName = &""
|
||||
@export var events: Array = []
|
||||
@export var time_phase_mask: StringName = &"both"
|
||||
|
||||
|
||||
func sorted_events() -> Array:
|
||||
var result: Array = []
|
||||
for event in events:
|
||||
if event is Resource:
|
||||
_apply_track_time_phase_mask(event)
|
||||
result.append(event)
|
||||
result.sort_custom(func(a: Resource, b: Resource) -> bool:
|
||||
return float(a.call("beat_position")) < float(b.call("beat_position"))
|
||||
)
|
||||
return result
|
||||
|
||||
|
||||
func _apply_track_time_phase_mask(event: Resource) -> void:
|
||||
if time_phase_mask.is_empty() or time_phase_mask == &"both":
|
||||
return
|
||||
var event_mask := StringName(str(event.get("time_phase_mask")))
|
||||
if event_mask.is_empty() or event_mask == &"both":
|
||||
event.set("time_phase_mask", time_phase_mask)
|
||||
Reference in New Issue
Block a user