Olympe Engine
2.0
2D Game Engine with ECS Architecture
Loading...
Searching...
No Matches
Source
TaskSystem
AtomicTasks
AI
Task_RequestPathfinding.h
Go to the documentation of this file.
1
/**
2
* @file Task_RequestPathfinding.h
3
* @brief Atomic task that asynchronously requests a path via PathfindingManager.
4
* @author Olympe Engine
5
* @date 2026-02-24
6
*
7
* @details
8
* Task_RequestPathfinding submits an async pathfinding request on the first
9
* tick and polls for completion on subsequent ticks. When the request
10
* completes the path string is written to the "Path" LocalBlackboard key.
11
*
12
* Parameters (ParameterMap):
13
* "Target" (Vector) - destination position (required)
14
* "AsyncDelay" (Float) - simulated delay in seconds (optional, default 0.0)
15
*
16
* LocalBlackboard reads:
17
* "Position" (Vector) - current entity position (required)
18
*
19
* LocalBlackboard output:
20
* "Path" (String) - straight-line path string "(sx,sy,sz)->(tx,ty,tz)"
21
*
22
* Returns:
23
* Running on the first tick (request submitted) and while waiting.
24
* Success once the path is written to "Path".
25
* Failure if required parameters or BB keys are missing.
26
*
27
* Abort() cancels the in-flight request.
28
*
29
* C++14 compliant - no C++17/20 features.
30
*/
31
32
#pragma once
33
34
#include <cstdint>
35
36
#include "../../IAtomicTask.h"
37
#include "../../Pathfinding/PathfindingManager.h"
38
39
namespace
Olympe
{
40
41
/**
42
* @class Task_RequestPathfinding
43
* @brief Async pathfinding task that polls PathfindingManager for completion.
44
*/
45
class
Task_RequestPathfinding
:
public
IAtomicTask
{
46
public
:
47
Task_RequestPathfinding
();
48
49
TaskStatus
ExecuteWithContext
(
const
AtomicTaskContext
&
ctx
,
50
const
ParameterMap
&
params
)
override
;
51
52
TaskStatus
Execute
(
const
ParameterMap
&
params
)
override
;
53
54
void
Abort
()
override
;
55
56
private
:
57
PathfindingManager::RequestID
m_requestID
;
///< Active request ID (0 = none)
58
bool
m_hasRequest
;
///< True after first-tick submission
59
};
60
61
}
// namespace Olympe
GetComponentTypeID_Static
ComponentTypeID GetComponentTypeID_Static()
Definition
ECS_Entity.h:56
Olympe::IAtomicTask
Abstract interface for a single atomic unit of work.
Definition
IAtomicTask.h:63
Olympe::IAtomicTask::ParameterMap
std::unordered_map< std::string, TaskValue > ParameterMap
Convenience alias for the parameter map passed to Execute().
Definition
IAtomicTask.h:67
Olympe::PathfindingManager::RequestID
uint64_t RequestID
Unique identifier for a pathfinding request.
Definition
PathfindingManager.h:55
Olympe::Task_RequestPathfinding
Async pathfinding task that polls PathfindingManager for completion.
Definition
Task_RequestPathfinding.h:45
Olympe::Task_RequestPathfinding::Task_RequestPathfinding
Task_RequestPathfinding()
Definition
Task_RequestPathfinding.cpp:31
Olympe::Task_RequestPathfinding::Abort
void Abort() override
Aborts the task, releasing any in-progress state.
Definition
Task_RequestPathfinding.cpp:37
Olympe::Task_RequestPathfinding::Execute
TaskStatus Execute(const ParameterMap ¶ms) override
Executes the atomic task for one frame.
Definition
Task_RequestPathfinding.cpp:53
Olympe::Task_RequestPathfinding::ExecuteWithContext
TaskStatus ExecuteWithContext(const AtomicTaskContext &ctx, const ParameterMap ¶ms) override
Executes the atomic task for one frame with full runtime context.
Definition
Task_RequestPathfinding.cpp:62
Olympe::Task_RequestPathfinding::m_requestID
PathfindingManager::RequestID m_requestID
Active request ID (0 = none)
Definition
Task_RequestPathfinding.h:57
Olympe::Task_RequestPathfinding::m_hasRequest
bool m_hasRequest
True after first-tick submission.
Definition
Task_RequestPathfinding.h:58
Olympe
< Provides AssetID and INVALID_ASSET_ID
Definition
BTEditorCommand.cpp:16
Olympe::TaskStatus
TaskStatus
Result code returned by IAtomicTask::Execute().
Definition
IAtomicTask.h:38
Olympe::AtomicTaskContext
Lightweight context bundle passed to IAtomicTask::ExecuteWithContext().
Definition
AtomicTaskContext.h:36
Generated on Mon Apr 13 2026 08:15:20 for Olympe Engine by
1.9.8