//$ 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];
}
}
}