KeyBoolEqualsPrecondition.cs 840 B

123456789101112131415161718192021222324
  1. namespace Content.Server.NPC.HTN.Preconditions.Math;
  2. /// <summary>
  3. /// Checks if there is a bool value for the specified <see cref="KeyBoolEqualsPrecondition.Key"/>
  4. /// in the <see cref="NPCBlackboard"/> and the specified value is equal to the <see cref="KeyBoolEqualsPrecondition.Value"/>.
  5. /// </summary>
  6. public sealed partial class KeyBoolEqualsPrecondition : HTNPrecondition
  7. {
  8. [Dependency] private readonly IEntityManager _entManager = default!;
  9. [DataField(required: true), ViewVariables]
  10. public string Key = string.Empty;
  11. [DataField(required: true), ViewVariables(VVAccess.ReadWrite)]
  12. public bool Value;
  13. public override bool IsMet(NPCBlackboard blackboard)
  14. {
  15. if (!blackboard.TryGetValue<bool>(Key, out var value, _entManager))
  16. return false;
  17. return Value == value;
  18. }
  19. }