//$ Copyright 2015-22, Code Respawn Technologies Pvt Ltd - All Rights Reserved $// using UnityEngine; using System.Collections.Generic; namespace DungeonArchitect.Utils { /// /// A blackboard holds global data that can be shared across multiple scripts /// public class Blackboard { private BlackboardDatabase intEntries = new BlackboardDatabase(0); public BlackboardDatabase IntEntries { get { return intEntries; } } private BlackboardDatabase floatEntries = new BlackboardDatabase(0.0f); public BlackboardDatabase FloatEntries { get { return floatEntries; } } private BlackboardDatabase stringEntries = new BlackboardDatabase(""); public BlackboardDatabase StringEntries { get { return stringEntries; } } private BlackboardDatabase vectorEntries = new BlackboardDatabase(Vector3.zero); public BlackboardDatabase VectorEntries { get { return vectorEntries; } } private BlackboardDatabase intVectorEntries = new BlackboardDatabase(IntVector.Zero); public BlackboardDatabase IntVectorEntries { get { return intVectorEntries; } } } public class BlackboardDatabase { T defaultValue; Dictionary database = new Dictionary(); public BlackboardDatabase(T defaultValue) { this.defaultValue = defaultValue; } public void SetValue(string key, T value) { database[key] = value; } public T GetValue(string key) { if (!database.ContainsKey(key)) { return defaultValue; } return database[key]; } } }