PlaySoundOperator.cs 765 B

12345678910111213141516171819202122232425262728
  1. using Robust.Server.Audio;
  2. using Robust.Shared.Audio;
  3. namespace Content.Server.NPC.HTN.PrimitiveTasks.Operators;
  4. public sealed partial class PlaySoundOperator : HTNOperator
  5. {
  6. private AudioSystem _audio = default!;
  7. [DataField(required: true)]
  8. public SoundSpecifier? Sound;
  9. public override void Initialize(IEntitySystemManager sysManager)
  10. {
  11. base.Initialize(sysManager);
  12. _audio = IoCManager.Resolve<IEntitySystemManager>().GetEntitySystem<AudioSystem>();
  13. }
  14. public override HTNOperatorStatus Update(NPCBlackboard blackboard, float frameTime)
  15. {
  16. var uid = blackboard.GetValue<EntityUid>(NPCBlackboard.Owner);
  17. _audio.PlayPvs(Sound, uid);
  18. return base.Update(blackboard, frameTime);
  19. }
  20. }