///---------------------------------------------------------------------------------------------- ///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); } } } }