Пример #1
0
        ///----------------------------------------------------------------------------------------------

        ///Overwrite variables from source blackboard into this blackboard
        public static void OverwriteFrom(this IBlackboard blackboard, IBlackboard sourceBlackboard, bool removeMissingVariables = true)
        {
            foreach (var pair in sourceBlackboard.variables)
            {
                if (blackboard.variables.ContainsKey(pair.Key))
                {
                    blackboard.SetVariableValue(pair.Key, pair.Value.value);
                }
                else
                {
                    blackboard.variables[pair.Key] = pair.Value;
                }
            }

            if (removeMissingVariables)
            {
                var keys = new List <string>(blackboard.variables.Keys);
                foreach (string key in keys)
                {
                    if (!sourceBlackboard.variables.ContainsKey(key))
                    {
                        blackboard.variables.Remove(key);
                    }
                }
            }
        }