Files
Bubberstation/code/datums/components/sound_player.dm
SkyratBot 61ec10c3e0 [MIRROR] grep's for "recieve" typos (#27826)
* grep's for "recieve" typos (#83369)

Just spellchecking some common mistakes.

* Missed these.

---------

Co-authored-by: Afevis <ShizCalev@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2024-05-23 23:38:14 +02:00

40 lines
902 B
Plaintext

/**
* Sound Player component
*
* Component that will play a sound upon receiving some signal
*/
/datum/component/sound_player
///Volume of the sound when played
var/volume
///The list of sounds played, picked randomly.
var/list/sounds
///Uses left before the sound player deletes itself. If set to a negative number that will mean infinite uses.
var/uses
/datum/component/sound_player/Initialize(
volume = 30,
sounds = list('sound/items/bikehorn.ogg'),
uses = -1,
signal_list = list(COMSIG_ATOM_ATTACK_HAND),
)
src.volume = volume
src.sounds = sounds
src.uses = uses
RegisterSignals(parent, signal_list, PROC_REF(play_sound))
/**
* Attempt to play the sound on parent
*
* If out of uses, will qdel itself.
*/
/datum/component/sound_player/proc/play_sound()
SIGNAL_HANDLER
playsound(parent, pick(sounds), volume, TRUE)
if(uses <= -1)
return
uses--
if(!uses)
qdel(src)