-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathBTBuildNode.h
More file actions
45 lines (38 loc) · 1.35 KB
/
Copy pathBTBuildNode.h
File metadata and controls
45 lines (38 loc) · 1.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#pragma once
#include <mathematics/vector2.hpp>
#include "Reflection.hpp" // CT3: was transitive via Core.Minimal.h
#include "BTEnum.h"
struct BTBuildNode
{
public:
static consteval auto reflect()
{
using Self = BTBuildNode;
return meta::schema<Self>(
meta::field<&Self::ID>,
meta::field<&Self::Type>,
meta::field<&Self::Name>,
meta::field<&Self::ParentID>,
meta::field<&Self::IsRoot>,
meta::field<&Self::HasScript>,
meta::field<&Self::ScriptName>,
meta::field<&Self::Policy>,
meta::field<&Self::Children>,
meta::field<&Self::ChildWeights>,
meta::field<&Self::Position>);
}
BTBuildNode() = default;
~BTBuildNode() = default;
HashedGuid ID; // 유니크 (uuid 등), ex) "node_001"
BehaviorNodeType Type; // 예: "Selector", "Wait", "MoveTo"
std::string Name; // UI 표시용
HashedGuid ParentID; // 연결 정보 (하위에 있는 노드가 부모를 참조)
bool IsRoot; // 루트 노드 여부
bool HasScript; // 스크립트 노드 여부("Action", "Condition")
std::string ScriptName; // 스크립트 이름
ParallelPolicy Policy; // 병렬 실행 정책
std::vector<HashedGuid> Children; // 자식 노드들
std::vector<float> ChildWeights; // 가중치 (WeightedSelector용)
math::vector2 Position; // 노드 위치 (에디터용)
std::string State;
};