limboai/editor/debugger/behavior_tree_data.h

63 lines
1.6 KiB
C++

/**
* behavior_tree_data.h
* =============================================================================
* Copyright 2021-2024 Serhii Snitsaruk
*
* Use of this source code is governed by an MIT-style
* license that can be found in the LICENSE file or at
* https://opensource.org/licenses/MIT.
* =============================================================================
*/
#ifndef BEHAVIOR_TREE_DATA_H
#define BEHAVIOR_TREE_DATA_H
#include "../../bt/bt_instance.h"
#include "../../bt/tasks/bt_task.h"
class BehaviorTreeData : public RefCounted {
GDCLASS(BehaviorTreeData, RefCounted);
protected:
static void _bind_methods();
public:
struct TaskData {
uint64_t id = 0;
String name;
bool is_custom_name = false;
int num_children = 0;
int status = 0;
double elapsed_time = 0.0;
String type_name;
String script_path;
TaskData(uint64_t p_id, const String &p_name, bool p_is_custom_name, int p_num_children, int p_status, double p_elapsed_time, const String &p_type_name, const String &p_script_path) {
id = p_id;
name = p_name;
is_custom_name = p_is_custom_name;
num_children = p_num_children;
status = p_status;
elapsed_time = p_elapsed_time;
type_name = p_type_name;
script_path = p_script_path;
}
TaskData() {}
};
List<TaskData> tasks;
uint64_t bt_instance_id = 0;
NodePath node_owner_path;
String source_bt_path;
public:
static Array serialize(const Ref<BTInstance> &p_instance);
static Ref<BehaviorTreeData> deserialize(const Array &p_array);
static Ref<BehaviorTreeData> create_from_bt_instance(const Ref<BTInstance> &p_bt_instance);
BehaviorTreeData();
};
#endif // BEHAVIOR_TREE_DATA_H