2026-01-30 00:35:01 +08:00
|
|
|
@abstract class_name NoteVisual extends Node2D
|
|
|
|
|
|
|
|
|
|
enum TYPE {
|
|
|
|
|
TAP = 0,
|
|
|
|
|
HOLD = 1
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@abstract func reset() -> void
|
|
|
|
|
|
|
|
|
|
@abstract func in_use() -> bool
|
2026-02-01 23:14:52 +08:00
|
|
|
|
|
|
|
|
@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
|
2026-02-04 00:03:12 +08:00
|
|
|
|
|
|
|
|
static func _calculate_scroll(target_beat: float, current_beat: float) -> float:
|
|
|
|
|
return Settings.get_note_scroll_speed() * (current_beat - target_beat)
|