Refresh menus chat and player expression
This commit is contained in:
parent
2a5e0a8f26
commit
0d50c324e9
127 changed files with 3222 additions and 221 deletions
47
ui/typewriter_reveal.gd
Normal file
47
ui/typewriter_reveal.gd
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
class_name TypewriterReveal
|
||||
extends RefCounted
|
||||
|
||||
const DEFAULT_CHARACTERS_PER_SECOND: float = 28.0
|
||||
const MIN_CHARACTERS_PER_SECOND: float = 12.0
|
||||
const MAX_CHARACTERS_PER_SECOND: float = 60.0
|
||||
|
||||
static var _characters_per_second: float = DEFAULT_CHARACTERS_PER_SECOND
|
||||
|
||||
|
||||
static func set_characters_per_second(value: float) -> void:
|
||||
_characters_per_second = clampf(
|
||||
value,
|
||||
MIN_CHARACTERS_PER_SECOND,
|
||||
MAX_CHARACTERS_PER_SECOND,
|
||||
)
|
||||
|
||||
|
||||
static func get_characters_per_second() -> float:
|
||||
return _characters_per_second
|
||||
|
||||
|
||||
static func start(
|
||||
label: Label,
|
||||
characters_per_second: float = -1.0,
|
||||
) -> float:
|
||||
if label == null:
|
||||
return 0.0
|
||||
var character_count: int = label.get_total_character_count()
|
||||
if character_count <= 0:
|
||||
label.visible_characters = -1
|
||||
return 0.0
|
||||
label.visible_characters = 0
|
||||
var resolved_characters_per_second := (
|
||||
characters_per_second
|
||||
if characters_per_second > 0.0
|
||||
else _characters_per_second
|
||||
)
|
||||
var duration := float(character_count) / resolved_characters_per_second
|
||||
var reveal_tween := label.create_tween()
|
||||
reveal_tween.tween_property(
|
||||
label,
|
||||
"visible_characters",
|
||||
character_count,
|
||||
duration,
|
||||
).from(0).set_trans(Tween.TRANS_LINEAR)
|
||||
return duration
|
||||
Loading…
Add table
Add a link
Reference in a new issue