From 4f185a0be66d49e0129d7863de421a26e36d9729 Mon Sep 17 00:00:00 2001 From: pissdemon <165581243+pissdemon@users.noreply.github.com> Date: Wed, 10 Apr 2024 03:51:26 +0200 Subject: [PATCH] RandomizedCandy: Play sound when candy is fabricated --- .../Abilities/Borgs/FabricateCandyComponent.cs | 9 +++++++++ .../Abilities/Borgs/FabricateCandySystem.cs | 18 ++++++++++++++---- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/Content.Server/Nyanotrasen/Abilities/Borgs/FabricateCandyComponent.cs b/Content.Server/Nyanotrasen/Abilities/Borgs/FabricateCandyComponent.cs index d0a399c1fea..048fabbb8b9 100644 --- a/Content.Server/Nyanotrasen/Abilities/Borgs/FabricateCandyComponent.cs +++ b/Content.Server/Nyanotrasen/Abilities/Borgs/FabricateCandyComponent.cs @@ -1,3 +1,5 @@ +using Robust.Shared.Audio; + namespace Content.Server.Abilities.Borgs; [RegisterComponent] @@ -8,4 +10,11 @@ public sealed partial class FabricateCandyComponent : Component [DataField("gumballAction")] public EntityUid? GumballAction; + + /// + /// The sound played when fabricating candy. + /// + [DataField("fabricationSound")] + [ViewVariables(VVAccess.ReadWrite)] + public SoundSpecifier FabricationSound = new SoundPathSpecifier("/Audio/Machines/machine_vend.ogg"); } diff --git a/Content.Server/Nyanotrasen/Abilities/Borgs/FabricateCandySystem.cs b/Content.Server/Nyanotrasen/Abilities/Borgs/FabricateCandySystem.cs index 6451c7cbb27..b9c7540d750 100644 --- a/Content.Server/Nyanotrasen/Abilities/Borgs/FabricateCandySystem.cs +++ b/Content.Server/Nyanotrasen/Abilities/Borgs/FabricateCandySystem.cs @@ -1,3 +1,5 @@ +using Robust.Server.Audio; +using Robust.Shared.Prototypes; using Content.Shared.Actions; using Content.Shared.Actions.Events; @@ -6,6 +8,8 @@ namespace Content.Server.Abilities.Borgs; public sealed partial class FabricateCandySystem : EntitySystem { [Dependency] private readonly SharedActionsSystem _actionsSystem = default!; + [Dependency] private readonly AudioSystem _audioSystem = default!; + public override void Initialize() { base.Initialize(); @@ -25,13 +29,19 @@ private void OnInit(EntityUid uid, FabricateCandyComponent component, ComponentI private void OnLollipop(FabricateLollipopActionEvent args) { - Spawn("FoodLollipop", Transform(args.Performer).Coordinates); - args.Handled = true; + OnCandy("FoodLollipop", args); } private void OnGumball(FabricateGumballActionEvent args) { - Spawn("FoodGumball", Transform(args.Performer).Coordinates); - args.Handled = true; + OnCandy("FoodGumball", args); + } + + private void OnCandy(EntProtoId proto, BaseActionEvent evt) + { + Spawn(proto, Transform(evt.Performer).Coordinates); + if (TryComp(evt.Performer, out FabricateCandyComponent? comp)) + _audioSystem.PlayPvs(comp.FabricationSound, evt.Performer); + evt.Handled = true; } }