55 lines
1.6 KiB
GDScript
55 lines
1.6 KiB
GDScript
class_name AudioManager
|
|
extends Node
|
|
|
|
# When the game starts, play background music
|
|
func _ready():
|
|
if Global.play_background_music:
|
|
play_background_music()
|
|
|
|
func play_chop_sound():
|
|
if not Global.play_chop_sound:
|
|
return
|
|
## Pick one of the chopping sounds randomly
|
|
var chop_sounds = [
|
|
"res://assets/audio/OGG/SFX/chopping/chop1.ogg",
|
|
"res://assets/audio/OGG/SFX/chopping/chop2.ogg",
|
|
"res://assets/audio/OGG/SFX/chopping/chop3.ogg",
|
|
"res://assets/audio/OGG/SFX/chopping/chop4.ogg"
|
|
]
|
|
var random_index = randi() % chop_sounds.size()
|
|
play_sound_effect(chop_sounds[random_index])
|
|
|
|
func play_money_sound():
|
|
if not Global.play_money_sound:
|
|
return
|
|
# Using a simple coin sound - you can replace with your own sound file
|
|
play_sound_effect("res://assets/audio/coin.mp3")
|
|
|
|
|
|
func play_sound_effect(sound_path: String):
|
|
var sfx_player = AudioStreamPlayer.new()
|
|
sfx_player.stream = load(sound_path)
|
|
sfx_player.volume_db = -5 # Set volume for sound effects
|
|
add_child(sfx_player)
|
|
sfx_player.play()
|
|
sfx_player.connect("finished", sfx_player.queue_free)
|
|
|
|
var music_player: AudioStreamPlayer = null
|
|
|
|
func play_background_music():
|
|
if not Global.play_background_music:
|
|
return
|
|
if music_player:
|
|
return # Already playing
|
|
music_player = AudioStreamPlayer.new()
|
|
music_player.stream = load("res://assets/audio/background_music.ogg")
|
|
music_player.volume_db = -10 # Set volume to a comfortable level
|
|
music_player.autoplay = true
|
|
add_child(music_player)
|
|
music_player.play()
|
|
|
|
func stop_background_music():
|
|
if music_player:
|
|
music_player.stop()
|
|
music_player.queue_free()
|
|
music_player = null
|