@abstract class_name NoteVisual extends Node2D enum TYPE { TAP = 0, HOLD = 1 } @abstract func reset() -> void @abstract func in_use() -> bool @abstract func update(beat: float) -> void # ======= IMPLEMENTATION ======= # var _lane: Lane = null func _notification(what: int) -> void: match what: NOTIFICATION_PARENTED: _lane = get_parent() as Lane NOTIFICATION_UNPARENTED: _lane = null static func _calculate_scroll(target_beat: float, current_beat: float) -> float: return Settings.get_note_scroll_speed() * (current_beat - target_beat)