44 lines
1.5 KiB
GDScript
44 lines
1.5 KiB
GDScript
class_name PopochiuIAudio
|
|
extends Node
|
|
## Provides access to the [PopochiuAudioCue]s in the game. Access with [b]A[/b] (e.g.
|
|
## [code]A.sfx_woosh.play()[/code]).
|
|
##
|
|
## Interface class that can be used to access all the audio cues in the game in order to play
|
|
## sound effects and music.[br][br]
|
|
## Use examples:[br]
|
|
## [codeblock]
|
|
## func _on_click() -> void:
|
|
## await A.sfx_tv_on.play()
|
|
## await E.queue([
|
|
## A.mx_toon_town.queue_play(),
|
|
## A.vo_scream.queue_play(true), # Wait for the audio to finish
|
|
## A.sfx_boing.queue_play(),
|
|
## ])
|
|
## A.mx_house.play()
|
|
## [/codeblock]
|
|
|
|
## Used to convert the value of the pitch set on [member PopochiuAudioCue.pitch] to the
|
|
## corresponding value needed for the [code]pitch_scale[/code] property of the audio stream players.
|
|
var twelfth_root_of_two := pow(2, (1.0 / 12))
|
|
|
|
|
|
#region Godot ######################################################################################
|
|
func _init() -> void:
|
|
Engine.register_singleton(&"A", self)
|
|
|
|
|
|
#endregion
|
|
|
|
#region Public #####################################################################################
|
|
## Transforms [param pitch] to a value that can be used to modify the
|
|
## [member AudioStreamPlayer.pitch_scale] or [member AudioStreamPlayer2D.pitch_scale].
|
|
func semitone_to_pitch(pitch: float) -> float:
|
|
return pow(twelfth_root_of_two, pitch)
|
|
|
|
|
|
## Returns [code]true[/code] if the [PopochiuAudioCue] identified by [param cue_name] is playing.
|
|
func is_playing_cue(cue_name: String) -> bool:
|
|
return PopochiuUtils.e.am.is_playing_cue(cue_name)
|
|
|
|
|
|
#endregion
|