Olympe Engine
2.0
2D Game Engine with ECS Architecture
Loading...
Searching...
No Matches
Source
AI
BehaviorTreeDependencyScanner.h
Go to the documentation of this file.
1
/*
2
Olympe Engine V2 - 2025
3
Nicolas Chereau
4
nchereau@gmail.com
5
6
This file is part of Olympe Engine V2.
7
8
BehaviorTreeDependencyScanner purpose: Scan entity prefabs to extract required
9
Behavior Tree dependencies before level instantiation.
10
*/
11
12
#pragma once
13
#include <string>
14
#include <vector>
15
#include <set>
16
#include <cstdint>
17
18
// Forward declarations
19
struct
PrefabBlueprint
;
20
namespace
nlohmann
{
class
json
; }
21
22
class
BehaviorTreeDependencyScanner
23
{
24
public
:
25
struct
BTDependency
26
{
27
std::string
treePath
;
// "Blueprints/AI/npc_wander.json"
28
uint32_t
suggestedTreeId
;
// Unique ID generated from path hash
29
30
BTDependency
() :
suggestedTreeId
(0) {}
31
BTDependency
(
const
std::string& path,
uint32_t
id
)
32
:
treePath
(path),
suggestedTreeId
(id) {}
33
};
34
35
// Scan a single prefab for BT requirements
36
static
std::vector<BTDependency>
ScanPrefab
(
const
PrefabBlueprint
&
prefab
);
37
38
// Scan multiple prefabs (used during level loading)
39
static
std::vector<BTDependency>
ScanPrefabs
(
const
std::vector<std::string>&
prefabNames
);
40
41
// Extract all prefab types used in a level TMJ/JSON
42
static
std::set<std::string>
ExtractPrefabsFromLevel
(
const
nlohmann::json
&
levelJson
);
43
44
// Generate unique tree ID from path (consistent hash)
45
static
uint32_t
GenerateTreeIdFromPath
(
const
std::string& treePath);
46
47
private
:
48
BehaviorTreeDependencyScanner
() =
delete
;
// Static class only
49
};
GetComponentTypeID_Static
ComponentTypeID GetComponentTypeID_Static()
Definition
ECS_Entity.h:56
BehaviorTreeDependencyScanner
Definition
BehaviorTreeDependencyScanner.h:23
BehaviorTreeDependencyScanner::GenerateTreeIdFromPath
static uint32_t GenerateTreeIdFromPath(const std::string &treePath)
Definition
BehaviorTreeDependencyScanner.cpp:21
BehaviorTreeDependencyScanner::BehaviorTreeDependencyScanner
BehaviorTreeDependencyScanner()=delete
BehaviorTreeDependencyScanner::ScanPrefab
static std::vector< BTDependency > ScanPrefab(const PrefabBlueprint &prefab)
Definition
BehaviorTreeDependencyScanner.cpp:67
BehaviorTreeDependencyScanner::ScanPrefabs
static std::vector< BTDependency > ScanPrefabs(const std::vector< std::string > &prefabNames)
Definition
BehaviorTreeDependencyScanner.cpp:104
BehaviorTreeDependencyScanner::ExtractPrefabsFromLevel
static std::set< std::string > ExtractPrefabsFromLevel(const nlohmann::json &levelJson)
Definition
BehaviorTreeDependencyScanner.cpp:171
nlohmann
Definition
BehaviorTreeDependencyScanner.h:20
nlohmann::json
nlohmann::json json
Definition
ParameterSchema.h:23
BehaviorTreeDependencyScanner::BTDependency
Definition
BehaviorTreeDependencyScanner.h:26
BehaviorTreeDependencyScanner::BTDependency::BTDependency
BTDependency()
Definition
BehaviorTreeDependencyScanner.h:30
BehaviorTreeDependencyScanner::BTDependency::treePath
std::string treePath
Definition
BehaviorTreeDependencyScanner.h:27
BehaviorTreeDependencyScanner::BTDependency::suggestedTreeId
uint32_t suggestedTreeId
Definition
BehaviorTreeDependencyScanner.h:28
BehaviorTreeDependencyScanner::BTDependency::BTDependency
BTDependency(const std::string &path, uint32_t id)
Definition
BehaviorTreeDependencyScanner.h:31
PrefabBlueprint
Definition
PrefabScanner.h:28
Generated on Tue Feb 17 2026 13:49:10 for Olympe Engine by
1.9.8