21 lines
508 B
GDScript
21 lines
508 B
GDScript
@tool
|
|
class_name CurvedLabel
|
|
extends Control
|
|
|
|
|
|
@export var curve: Curve
|
|
@export var text: String:
|
|
set(new_value):
|
|
text = new_value
|
|
queue_redraw()
|
|
@export var enable_rotation: bool = true:
|
|
set(new_value):
|
|
enable_rotation = new_value
|
|
queue_redraw()
|
|
|
|
func _draw():
|
|
var rotation = 0.0
|
|
for i in text.length():
|
|
draw_char(get_theme_default_font(), Vector2.ZERO + (Vector2.RIGHT * (i*10)), text[i])
|
|
rotation += 10.0 if enable_rotation else 0
|
|
draw_set_transform(Vector2.ZERO, deg_to_rad(rotation))
|