claude godot 4 port
This commit is contained in:
+17
-23
@@ -2,8 +2,8 @@ extends Node
|
||||
|
||||
signal finished
|
||||
|
||||
onready var node_speech = $speech
|
||||
onready var node_music = $music
|
||||
@onready var node_speech = $speech
|
||||
@onready var node_music = $music
|
||||
|
||||
const greet := [preload("res://assets/audio/clips/greet/voc_en_greet_goodmorning.mp3"), preload("res://assets/audio/clips/greet/voc_en_greet_hello.mp3")]
|
||||
const its := preload("res://assets/audio/clips/misc/voc_en_its.mp3")
|
||||
@@ -15,12 +15,12 @@ const weather := [preload("res://assets/audio/clips/weather/voc_en_weather_cloud
|
||||
|
||||
const music := [preload("res://assets/audio/clips/music/music_cloudy.wav"), preload("res://assets/audio/clips/music/music_foggy.wav"), preload("res://assets/audio/clips/music/music_partlycloudy.wav"), preload("res://assets/audio/clips/music/music_rainy.wav"), preload("res://assets/audio/clips/music/music_snowy.wav"), preload("res://assets/audio/clips/music/music_stormy.wav"), preload("res://assets/audio/clips/music/music_sunny.wav"), preload("res://assets/audio/clips/music/music_unknown.wav")]
|
||||
|
||||
var tween:SceneTreeTween
|
||||
var tween: Tween
|
||||
|
||||
var A_finished = true
|
||||
var B_finished = true
|
||||
|
||||
func play(moment:Moment, day:int, weather:int, music_weather_override=null, play_music := true, speak_time := true):
|
||||
func play(moment: Moment, day: int, weather_idx: int, music_weather_override = null, play_music: bool = true, speak_time: bool = true):
|
||||
stop()
|
||||
if tween:
|
||||
tween.kill()
|
||||
@@ -34,16 +34,16 @@ func play(moment:Moment, day:int, weather:int, music_weather_override=null, play
|
||||
1.0, # sleep for 1 second
|
||||
greet[0] if moment.is_morning() else greet[1],
|
||||
its,
|
||||
load(hours[int(moment.hour-1) % 12]),
|
||||
load(hours[int(moment.hour - 1) % 12]),
|
||||
load(minutes[moment.minute]),
|
||||
am_pm[0 if moment.is_am() else 1],
|
||||
weekday[day],
|
||||
]
|
||||
var tune = music[Constants.WEATHER.UNKNOWN]
|
||||
if weather < Constants.WEATHER.UNKNOWN:
|
||||
out.append(self.weather[weather])
|
||||
tune = music[weather]
|
||||
|
||||
if weather_idx < Constants.WEATHER.UNKNOWN:
|
||||
out.append(self.weather[weather_idx])
|
||||
tune = music[weather_idx]
|
||||
|
||||
if music_weather_override != null:
|
||||
tune = music[music_weather_override]
|
||||
|
||||
@@ -52,15 +52,15 @@ func play(moment:Moment, day:int, weather:int, music_weather_override=null, play
|
||||
if play_music:
|
||||
node_music.stream = tune
|
||||
node_music.play()
|
||||
|
||||
if A_finished and B_finished:
|
||||
emit_signal("finished")
|
||||
|
||||
func stop(fadeout:=0.0):
|
||||
if A_finished and B_finished:
|
||||
finished.emit()
|
||||
|
||||
func stop(fadeout: float = 0.0):
|
||||
if tween:
|
||||
tween.kill()
|
||||
if fadeout > 0:
|
||||
print("fadeout ",fadeout)
|
||||
print("fadeout ", fadeout)
|
||||
tween = get_tree().create_tween()
|
||||
tween.set_parallel(true)
|
||||
tween.tween_property(node_music, "volume_db", -60.0, fadeout)
|
||||
@@ -68,9 +68,7 @@ func stop(fadeout:=0.0):
|
||||
tween.set_parallel(false)
|
||||
tween.tween_interval(fadeout)
|
||||
tween.play()
|
||||
yield(tween, 'finished')
|
||||
# tween.connect("finished", self, "stop")
|
||||
# return
|
||||
await tween.finished
|
||||
node_music.stop()
|
||||
node_speech.stop()
|
||||
|
||||
@@ -82,15 +80,11 @@ func is_playing():
|
||||
|
||||
func _on_speech_all_finished():
|
||||
A_finished = true
|
||||
# print("a_finished")
|
||||
if A_finished and B_finished:
|
||||
# print('boop')
|
||||
emit_signal("finished")
|
||||
finished.emit()
|
||||
|
||||
|
||||
func _on_music_finished():
|
||||
B_finished = true
|
||||
# print("b_finished")
|
||||
if A_finished and B_finished:
|
||||
# print('boop')
|
||||
emit_signal("finished")
|
||||
finished.emit()
|
||||
|
||||
Reference in New Issue
Block a user