コード例 #1
0
 public static void Unsubscribe(FStringId name, DEventSubscriber subscriber)
 {
     if (eventTosubscribers.ContainsKey(name))
     {
         eventTosubscribers[name] -= subscriber;
     }
 }
コード例 #2
0
        public void AddValue <T>(FStringId key, T value) where T : class, IVariant
        {
            FAssert.IsFalse(string.IsNullOrWhiteSpace(key), $"Name can't be null or empty.");
            FAssert.IsFalse(_values.ContainsKey(key), $"A value with {key} key is already exist in blackboard.");

            _values.Add(key, value);
        }
コード例 #3
0
 public static void Publish(FStringId name, EventArgs args)
 {
     if (eventTosubscribers.TryGetValue(name, out DEventSubscriber subscribers))
     {
         subscribers?.Invoke(args);
     }
 }
コード例 #4
0
 public FCriteria(FBlackboard blackboard, FStringId key, EValueComparer comparer, IVariant expectedValue)
 {
     this._key           = key;
     this._comparer      = comparer;
     this._blackboard    = blackboard;
     this._expectedValue = expectedValue;
 }
コード例 #5
0
        public bool TryGetValue <T>(FStringId key, out T value) where T : class, IVariant
        {
            bool isSuccessful = _values.TryGetValue(key, out IVariant result);

            value = result as T;

            return(isSuccessful);
        }
コード例 #6
0
 public static void Subscribe(FStringId name, DEventSubscriber subscriber)
 {
     if (eventTosubscribers.ContainsKey(name))
     {
         eventTosubscribers[name] += subscriber;
     }
     else
     {
         eventTosubscribers.Add(name, subscriber);
     }
 }
コード例 #7
0
        public T GetValue <T>(FStringId key) where T : class, IVariant
        {
            FAssert.IsTrue(_values.ContainsKey(key), $"{key} key does not exist in the blackboard");

            return((T)_values[key]);
        }
コード例 #8
0
 public static void Publish(FStringId name) => Publish(name, EventArgs.Empty);
コード例 #9
0
        public FRule AddCriteria(FBlackboard blackboard, FStringId key, EValueComparer comparer, IVariant expectedValue)
        {
            _criterias.Add(new FCriteria(blackboard, key, comparer, expectedValue));

            return(this);
        }