Files
Kalulu/sources/menus/main/kalulu.gd
T
2025-09-05 15:55:48 +02:00

56 lines
1.3 KiB
GDScript

extends Control
var tuto_speech: AudioStreamMP3
var feedback_speech: AudioStreamMP3
var is_speaking: bool = false:
set(value):
is_speaking = value
elapsed_time = 0
if is_speaking:
sprite.play("Tc_Talk1")
else:
sprite.play("Tc_Idle1")
var elapsed_time: float = 0.0
@onready var speech_player: AudioStreamPlayer = $SpeechPlayer
@onready var sprite: AnimatedSprite2D = $Sprite
func _ready() -> void:
tuto_speech = Database.load_external_sound(Database.get_kalulu_speech_path("title_screen", "tuto_welcome_oneshot"))
feedback_speech = Database.load_external_sound(Database.get_kalulu_speech_path("title_screen", "feedback_welcome"))
_play_speech(tuto_speech)
func _process(delta: float) -> void:
if not visible:
return
if not sprite.is_playing():
sprite.play("Tc_Idle1")
if not is_speaking:
elapsed_time += delta
if elapsed_time > 20:
start_speech()
func _play_speech(speech: AudioStream) -> void:
if not speech:
Logger.warn("Kalulu: Speech not found")
is_speaking = false
return
is_speaking = true
speech_player.stream = speech
speech_player.play()
await speech_player.finished
is_speaking = false
func start_speech() -> void:
_play_speech(feedback_speech)
func stop_speech() -> void:
sprite.stop()
speech_player.stop()
is_speaking = false