8#ifndef OLYMPE_GLOBAL_TEMPLATE_BLACKBOARD_H
9#define OLYMPE_GLOBAL_TEMPLATE_BLACKBOARD_H
14#include <unordered_map>
18#include "../TaskSystem/TaskGraphTypes.h"
37 default:
return "None";
96 const std::string& description =
"",
97 bool isPersistent =
false);
101 const std::string& description =
"");
ComponentTypeID GetComponentTypeID_Static()
const GlobalEntryDefinition * GetVariable(const std::string &key) const
bool SaveToFile(const std::string &configPath="") const
static void Reload()
Force reload of the registry from file (useful for hot reload)
bool UpdateVariable(const std::string &key, const TaskValue &defaultValue, const std::string &description="")
std::string m_lastLoadedPath
Track the last successfully loaded path for consistent saves.
bool LoadFromFile(const std::string &configPath="./Config/global_blackboard_register.json")
static GlobalTemplateBlackboard & Get()
std::unordered_map< std::string, size_t > m_nameToIndex
bool HasVariable(const std::string &key) const
GlobalTemplateBlackboard(GlobalTemplateBlackboard &&)=delete
size_t GetVariableCount() const
VariableType GetVariableType(const std::string &key) const
std::vector< GlobalEntryDefinition > m_variables
bool HasConflicts() const
GlobalTemplateBlackboard & operator=(GlobalTemplateBlackboard &&)=delete
static bool IsValidVariableName(const std::string &name)
GlobalTemplateBlackboard(const GlobalTemplateBlackboard &)=delete
~GlobalTemplateBlackboard()=default
static bool IsTypeCompatible(VariableType existingType, VariableType newType)
GlobalTemplateBlackboard()=default
bool AddVariable(const std::string &key, VariableType type, const TaskValue &defaultValue, const std::string &description="", bool isPersistent=false)
std::string DebugSummary() const
bool RemoveVariable(const std::string &key)
const std::vector< GlobalEntryDefinition > & GetAllVariables() const
GlobalTemplateBlackboard & operator=(const GlobalTemplateBlackboard &)=delete
TaskValue GetDefaultValue(const std::string &key) const
C++14-compliant type-safe value container for task parameters.
< Provides AssetID and INVALID_ASSET_ID
VariableType
Type tags used by TaskValue to identify stored data.
@ Int
32-bit signed integer
@ Float
Single-precision float.
@ Vector
3-component vector (Vector from vector.h)
@ None
Uninitialized / empty value.
@ EntityID
Entity identifier (uint64_t)
static std::string VariableTypeToString(VariableType type)
Converts a VariableType to its canonical string representation.
static VariableType StringToVariableType(const std::string &str)
static TaskValue GetDefaultValueForType(VariableType type)
Returns a correctly-typed default TaskValue for the given VariableType.