Olympe Engine 2.0
2D Game Engine with ECS Architecture
Loading...
Searching...
No Matches
Task_SetVariable.h
Go to the documentation of this file.
1/**
2 * @file Task_SetVariable.h
3 * @brief Atomic task that writes a value into the LocalBlackboard.
4 * @author Olympe Engine
5 * @date 2026-02-23
6 *
7 * @details
8 * Task_SetVariable writes the "Value" parameter into the LocalBlackboard
9 * variable named by the "VarName" parameter.
10 *
11 * Parameters (ParameterMap):
12 * "VarName" (String) - name of the blackboard variable to set (required)
13 * "Value" (any) - the value to write; type must match the variable's
14 * declared type (required)
15 *
16 * Returns:
17 * Success on successful write.
18 * Failure if VarName is missing, Value is missing, or a type mismatch
19 * occurs.
20 *
21 * C++14 compliant - no C++17/20 features.
22 */
23
24#pragma once
25
26#include "../../IAtomicTask.h"
27
28namespace Olympe {
29
30/**
31 * @class Task_SetVariable
32 * @brief Atomic task that writes a value into the LocalBlackboard.
33 */
35public:
37
39 const ParameterMap& params) override;
40
41 TaskStatus Execute(const ParameterMap& params) override;
42
43 void Abort() override;
44};
45
46} // namespace Olympe
ComponentTypeID GetComponentTypeID_Static()
Definition ECS_Entity.h:56
Abstract interface for a single atomic unit of work.
Definition IAtomicTask.h:63
std::unordered_map< std::string, TaskValue > ParameterMap
Convenience alias for the parameter map passed to Execute().
Definition IAtomicTask.h:67
Atomic task that writes a value into the LocalBlackboard.
TaskStatus Execute(const ParameterMap &params) override
Executes the atomic task for one frame.
void Abort() override
Aborts the task, releasing any in-progress state.
TaskStatus ExecuteWithContext(const AtomicTaskContext &ctx, const ParameterMap &params) override
Executes the atomic task for one frame with full runtime context.
< Provides AssetID and INVALID_ASSET_ID
TaskStatus
Result code returned by IAtomicTask::Execute().
Definition IAtomicTask.h:38
Lightweight context bundle passed to IAtomicTask::ExecuteWithContext().