## An array of notes, stored as arrays of data. ## Notes are assumed to be sorted in ascending order by beat. class_name NoteArray extends Node ## The ID of the note at [param index]. func id_at(index: int) -> int: return index ## The beat of the note at [param index]. func beat_at(index: int) -> float: return _beats.get(index) ## The type of the note at [param index]. func type_at(index: int) -> Note.TYPE: return _types.get(index) ## The lane of the note at [param index]. func lane_at(index: int) -> int: return _lanes.get(index) ## The number of notes in the array. func size() -> int: return _beats.size() ## Remove all notes in the array. func clear() -> void: _beats = [] _types = [] _lanes = [] # ======= IMPLEMENTATION ======= # var _beats: Array[float] = [] var _types: Array[Note.TYPE] = [] var _lanes: Array[int] = [] func _append_note(note: Note) -> void: _beats.append(note.hit_beat) _types.append(note.type) _lanes.append(note.lane) func _append_note_data(beat: float, type: Note.TYPE, lane: int) -> void: _beats.append(beat) _types.append(type) _lanes.append(lane)