public static void Unsubscribe(FStringId name, DEventSubscriber subscriber) { if (eventTosubscribers.ContainsKey(name)) { eventTosubscribers[name] -= subscriber; } }
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); }
public static void Publish(FStringId name, EventArgs args) { if (eventTosubscribers.TryGetValue(name, out DEventSubscriber subscribers)) { subscribers?.Invoke(args); } }
public FCriteria(FBlackboard blackboard, FStringId key, EValueComparer comparer, IVariant expectedValue) { this._key = key; this._comparer = comparer; this._blackboard = blackboard; this._expectedValue = expectedValue; }
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); }
public static void Subscribe(FStringId name, DEventSubscriber subscriber) { if (eventTosubscribers.ContainsKey(name)) { eventTosubscribers[name] += subscriber; } else { eventTosubscribers.Add(name, subscriber); } }
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]); }
public static void Publish(FStringId name) => Publish(name, EventArgs.Empty);
public FRule AddCriteria(FBlackboard blackboard, FStringId key, EValueComparer comparer, IVariant expectedValue) { _criterias.Add(new FCriteria(blackboard, key, comparer, expectedValue)); return(this); }