BuckledPrecondition.cs 810 B

123456789101112131415161718192021222324252627
  1. using Content.Shared.Buckle;
  2. namespace Content.Server.NPC.HTN.Preconditions;
  3. /// <summary>
  4. /// Checks if the owner is buckled or not
  5. /// </summary>
  6. public sealed partial class BuckledPrecondition : HTNPrecondition
  7. {
  8. private SharedBuckleSystem _buckle = default!;
  9. [ViewVariables(VVAccess.ReadWrite)] [DataField("isBuckled")] public bool IsBuckled = true;
  10. public override void Initialize(IEntitySystemManager sysManager)
  11. {
  12. base.Initialize(sysManager);
  13. _buckle = sysManager.GetEntitySystem<SharedBuckleSystem>();
  14. }
  15. public override bool IsMet(NPCBlackboard blackboard)
  16. {
  17. var owner = blackboard.GetValue<EntityUid>(NPCBlackboard.Owner);
  18. return IsBuckled && _buckle.IsBuckled(owner) ||
  19. !IsBuckled && !_buckle.IsBuckled(owner);
  20. }
  21. }