public virtual T?GetValue <T>(BlackboardKey key) where T : struct { if (_objects.TryGetValue(key, out var value) && value is T result) { return(result); } return(default);
public override object?GetObject(BlackboardKey key) => _blackboard?.GetObject(key);
public override bool HasKey(BlackboardKey key) => _blackboard?.HasKey(key) ?? false;
public override void Set(BlackboardKey key, object?value) { _blackboard?.Set(key, value); ValueChanged?.Invoke(key, value); }
public override T?GetValue <T>(BlackboardKey key) => _blackboard?.GetValue <T>(key);
public override T?GetObject <T>(BlackboardKey key) where T : class => _blackboard?.GetObject <T>(key);
public override void Remove(BlackboardKey key) => _blackboard?.Remove(key);
public BlackboardProperty(BlackboardKey key) { Key = key; Value = default; }