Olympe Engine 2.0
2D Game Engine with ECS Architecture
Loading...
Searching...
No Matches
Task_SetAnimation.h
Go to the documentation of this file.
1/**
2 * @file Task_SetAnimation.h
3 * @brief Atomic AI task that triggers an animation on an entity.
4 * @author Olympe Engine
5 * @date 2026-03-08
6 *
7 * @details
8 * Task_SetAnimation requests that a named animation be played on the entity.
9 * In headless mode it stores the animation reference in the LocalBlackboard
10 * under "local:current_animation". In World mode it can be extended to
11 * call an AnimationComponent via the ComponentFacade.
12 *
13 * Parameters (ParameterMap):
14 * "AnimRef" (String) — animation identifier / clip name (required).
15 * "Loop" (Bool) — whether to loop (optional, default true).
16 *
17 * Returns:
18 * Success after writing the animation request.
19 * Failure if "AnimRef" is missing or if ctx.LocalBB is null.
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_SetAnimation
32 * @brief Requests an animation clip to play on the entity.
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
Requests an animation clip to play on the entity.
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.
TaskStatus Execute(const ParameterMap &params) override
Executes the atomic task for one frame.
< Provides AssetID and INVALID_ASSET_ID
TaskStatus
Result code returned by IAtomicTask::Execute().
Definition IAtomicTask.h:38
Lightweight context bundle passed to IAtomicTask::ExecuteWithContext().