Compare commits
No commits in common. "49f5e3be79133304f3fb83f7f0d7764fe7697c2e" and "08ad6c1d995a277ed4e23397696b77830006920e" have entirely different histories.
49f5e3be79
...
08ad6c1d99
3
SCsub
3
SCsub
|
@ -7,9 +7,6 @@ module_env = env.Clone()
|
||||||
|
|
||||||
module_env.Append(CPPDEFINES=["LIMBOAI_MODULE"])
|
module_env.Append(CPPDEFINES=["LIMBOAI_MODULE"])
|
||||||
|
|
||||||
import limboai_version
|
|
||||||
limboai_version.generate_module_version_header()
|
|
||||||
|
|
||||||
module_env.add_source_files(env.modules_sources, "*.cpp")
|
module_env.add_source_files(env.modules_sources, "*.cpp")
|
||||||
module_env.add_source_files(env.modules_sources, "blackboard/*.cpp")
|
module_env.add_source_files(env.modules_sources, "blackboard/*.cpp")
|
||||||
module_env.add_source_files(env.modules_sources, "blackboard/bb_param/*.cpp")
|
module_env.add_source_files(env.modules_sources, "blackboard/bb_param/*.cpp")
|
||||||
|
|
|
@ -20,7 +20,6 @@
|
||||||
#include "../bt/tasks/decorators/bt_subtree.h"
|
#include "../bt/tasks/decorators/bt_subtree.h"
|
||||||
#include "../util/limbo_compat.h"
|
#include "../util/limbo_compat.h"
|
||||||
#include "../util/limbo_utility.h"
|
#include "../util/limbo_utility.h"
|
||||||
#include "../util/limboai_version.h"
|
|
||||||
#include "action_banner.h"
|
#include "action_banner.h"
|
||||||
#include "blackboard_plan_editor.h"
|
#include "blackboard_plan_editor.h"
|
||||||
#include "debugger/limbo_debugger_plugin.h"
|
#include "debugger/limbo_debugger_plugin.h"
|
||||||
|
@ -896,10 +895,6 @@ void LimboAIEditor::_task_type_selected(const String &p_class_or_path) {
|
||||||
_mark_as_dirty(true);
|
_mark_as_dirty(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LimboAIEditor::_copy_version_info() {
|
|
||||||
DisplayServer::get_singleton()->clipboard_set(version_btn->get_text());
|
|
||||||
}
|
|
||||||
|
|
||||||
void LimboAIEditor::_replace_task(const Ref<BTTask> &p_task, const Ref<BTTask> &p_by_task) {
|
void LimboAIEditor::_replace_task(const Ref<BTTask> &p_task, const Ref<BTTask> &p_by_task) {
|
||||||
ERR_FAIL_COND(p_task.is_null());
|
ERR_FAIL_COND(p_task.is_null());
|
||||||
ERR_FAIL_COND(p_by_task.is_null());
|
ERR_FAIL_COND(p_by_task.is_null());
|
||||||
|
@ -1326,7 +1321,6 @@ void LimboAIEditor::_notification(int p_what) {
|
||||||
tab_bar->connect(LW_NAME(gui_input), callable_mp(this, &LimboAIEditor::_tab_input));
|
tab_bar->connect(LW_NAME(gui_input), callable_mp(this, &LimboAIEditor::_tab_input));
|
||||||
tab_menu->connect(LW_NAME(id_pressed), callable_mp(this, &LimboAIEditor::_tab_menu_option_selected));
|
tab_menu->connect(LW_NAME(id_pressed), callable_mp(this, &LimboAIEditor::_tab_menu_option_selected));
|
||||||
tab_bar->connect("tab_button_pressed", callable_mp(this, &LimboAIEditor::_tab_plan_edited));
|
tab_bar->connect("tab_button_pressed", callable_mp(this, &LimboAIEditor::_tab_plan_edited));
|
||||||
version_btn->connect(LW_NAME(pressed), callable_mp(this, &LimboAIEditor::_copy_version_info));
|
|
||||||
|
|
||||||
EDITOR_FILE_SYSTEM()->connect("resources_reload", callable_mp(this, &LimboAIEditor::_on_resources_reload));
|
EDITOR_FILE_SYSTEM()->connect("resources_reload", callable_mp(this, &LimboAIEditor::_on_resources_reload));
|
||||||
|
|
||||||
|
@ -1465,26 +1459,9 @@ LimboAIEditor::LimboAIEditor() {
|
||||||
misc_btn->set_flat(true);
|
misc_btn->set_flat(true);
|
||||||
toolbar->add_child(misc_btn);
|
toolbar->add_child(misc_btn);
|
||||||
|
|
||||||
HBoxContainer *toolbar_end_hbox = memnew(HBoxContainer);
|
HBoxContainer *nav = memnew(HBoxContainer);
|
||||||
toolbar_end_hbox->set_h_size_flags(SIZE_EXPAND | SIZE_SHRINK_END);
|
nav->set_h_size_flags(SIZE_EXPAND | SIZE_SHRINK_END);
|
||||||
toolbar->add_child(toolbar_end_hbox);
|
toolbar->add_child(nav);
|
||||||
|
|
||||||
TextureRect *logo = memnew(TextureRect);
|
|
||||||
logo->set_stretch_mode(TextureRect::STRETCH_KEEP_ASPECT_CENTERED);
|
|
||||||
logo->set_texture(LimboUtility::get_singleton()->get_task_icon("LimboAI"));
|
|
||||||
toolbar_end_hbox->add_child(logo);
|
|
||||||
|
|
||||||
version_btn = memnew(LinkButton);
|
|
||||||
version_btn->set_text(TTR("v") + String(GET_LIMBOAI_FULL_VERSION()));
|
|
||||||
version_btn->set_tooltip_text(TTR("Click to copy."));
|
|
||||||
version_btn->set_self_modulate(Color(1, 1, 1, 0.65));
|
|
||||||
version_btn->set_underline_mode(LinkButton::UNDERLINE_MODE_ON_HOVER);
|
|
||||||
version_btn->set_v_size_flags(SIZE_SHRINK_CENTER);
|
|
||||||
toolbar_end_hbox->add_child(version_btn);
|
|
||||||
|
|
||||||
Control *version_spacer = memnew(Control);
|
|
||||||
version_spacer->set_custom_minimum_size(Size2(2, 0) * EDSCALE);
|
|
||||||
toolbar_end_hbox->add_child(version_spacer);
|
|
||||||
|
|
||||||
tab_bar_panel = memnew(PanelContainer);
|
tab_bar_panel = memnew(PanelContainer);
|
||||||
vbox->add_child(tab_bar_panel);
|
vbox->add_child(tab_bar_panel);
|
||||||
|
|
|
@ -34,7 +34,6 @@
|
||||||
#include "scene/gui/file_dialog.h"
|
#include "scene/gui/file_dialog.h"
|
||||||
#include "scene/gui/flow_container.h"
|
#include "scene/gui/flow_container.h"
|
||||||
#include "scene/gui/line_edit.h"
|
#include "scene/gui/line_edit.h"
|
||||||
#include "scene/gui/link_button.h"
|
|
||||||
#include "scene/gui/margin_container.h"
|
#include "scene/gui/margin_container.h"
|
||||||
#include "scene/gui/panel_container.h"
|
#include "scene/gui/panel_container.h"
|
||||||
#include "scene/gui/popup.h"
|
#include "scene/gui/popup.h"
|
||||||
|
@ -56,7 +55,6 @@
|
||||||
#include <godot_cpp/classes/h_box_container.hpp>
|
#include <godot_cpp/classes/h_box_container.hpp>
|
||||||
#include <godot_cpp/classes/h_split_container.hpp>
|
#include <godot_cpp/classes/h_split_container.hpp>
|
||||||
#include <godot_cpp/classes/input_event.hpp>
|
#include <godot_cpp/classes/input_event.hpp>
|
||||||
#include <godot_cpp/classes/link_button.hpp>
|
|
||||||
#include <godot_cpp/classes/menu_button.hpp>
|
#include <godot_cpp/classes/menu_button.hpp>
|
||||||
#include <godot_cpp/classes/panel.hpp>
|
#include <godot_cpp/classes/panel.hpp>
|
||||||
#include <godot_cpp/classes/popup_menu.hpp>
|
#include <godot_cpp/classes/popup_menu.hpp>
|
||||||
|
@ -141,7 +139,6 @@ private:
|
||||||
VBoxContainer *vbox;
|
VBoxContainer *vbox;
|
||||||
PanelContainer *tab_bar_panel;
|
PanelContainer *tab_bar_panel;
|
||||||
HBoxContainer *tab_bar_container;
|
HBoxContainer *tab_bar_container;
|
||||||
LinkButton *version_btn;
|
|
||||||
TabBar *tab_bar;
|
TabBar *tab_bar;
|
||||||
PopupMenu *tab_menu;
|
PopupMenu *tab_menu;
|
||||||
OwnerPicker *owner_picker;
|
OwnerPicker *owner_picker;
|
||||||
|
@ -228,7 +225,6 @@ private:
|
||||||
void _on_task_dragged(Ref<BTTask> p_task, Ref<BTTask> p_to_task, int p_type);
|
void _on_task_dragged(Ref<BTTask> p_task, Ref<BTTask> p_to_task, int p_type);
|
||||||
void _on_resources_reload(const PackedStringArray &p_resources);
|
void _on_resources_reload(const PackedStringArray &p_resources);
|
||||||
void _task_type_selected(const String &p_class_or_path);
|
void _task_type_selected(const String &p_class_or_path);
|
||||||
void _copy_version_info();
|
|
||||||
|
|
||||||
void _edit_project_settings();
|
void _edit_project_settings();
|
||||||
void _process_shortcut_input(const Ref<InputEvent> &p_event);
|
void _process_shortcut_input(const Ref<InputEvent> &p_event);
|
||||||
|
|
|
@ -12,15 +12,7 @@ env = SConscript("godot-cpp/SConstruct")
|
||||||
# - CPPDEFINES are for pre-processor defines
|
# - CPPDEFINES are for pre-processor defines
|
||||||
# - LINKFLAGS are for linking flags
|
# - LINKFLAGS are for linking flags
|
||||||
|
|
||||||
# Generate version header.
|
# tweak this if you want to use different folders, or more folders, to store your source code in.
|
||||||
sys.path.append("./limboai")
|
|
||||||
import limboai_version
|
|
||||||
os.chdir("./limboai")
|
|
||||||
limboai_version.generate_module_version_header()
|
|
||||||
os.chdir("..")
|
|
||||||
sys.path.remove("./limboai")
|
|
||||||
|
|
||||||
# Tweak this if you want to use different folders, or more folders, to store your source code in.
|
|
||||||
env.Append(CPPPATH=["limboai/"])
|
env.Append(CPPPATH=["limboai/"])
|
||||||
env.Append(CPPDEFINES=["LIMBOAI_GDEXTENSION"])
|
env.Append(CPPDEFINES=["LIMBOAI_GDEXTENSION"])
|
||||||
sources = Glob("limboai/*.cpp")
|
sources = Glob("limboai/*.cpp")
|
||||||
|
|
|
@ -1,59 +0,0 @@
|
||||||
# Edit the following variables to change version info
|
|
||||||
|
|
||||||
major = 1
|
|
||||||
minor = 1
|
|
||||||
patch = 0
|
|
||||||
status = "dev"
|
|
||||||
doc_branch = "latest"
|
|
||||||
|
|
||||||
# Code that generates version header
|
|
||||||
|
|
||||||
def _git_hash(short: bool = False):
|
|
||||||
import subprocess
|
|
||||||
ret = "unknown"
|
|
||||||
try:
|
|
||||||
if short:
|
|
||||||
cmd = ["git", "rev-parse", "--short", "HEAD"]
|
|
||||||
else:
|
|
||||||
cmd = ["git", "rev-parse", "HEAD"]
|
|
||||||
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
|
|
||||||
ret = proc.communicate()[0].strip().decode("utf-8")
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
return ret
|
|
||||||
|
|
||||||
|
|
||||||
def _get_version_info():
|
|
||||||
return {
|
|
||||||
"major": major,
|
|
||||||
"minor": minor,
|
|
||||||
"patch": patch,
|
|
||||||
"status": status,
|
|
||||||
"doc_branch": doc_branch,
|
|
||||||
"git_short_hash": _git_hash(short=True),
|
|
||||||
"git_hash": _git_hash(short=False)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
def generate_module_version_header():
|
|
||||||
version_info = _get_version_info()
|
|
||||||
f = open("util/limboai_version.gen.h", "w")
|
|
||||||
f.write(
|
|
||||||
"""/* THIS FILE IS GENERATED DO NOT EDIT */
|
|
||||||
#ifndef LIMBOAI_VERSION_GEN_H
|
|
||||||
#define LIMBOAI_VERSION_GEN_H
|
|
||||||
|
|
||||||
#define LIMBOAI_VERSION_MAJOR {major}
|
|
||||||
#define LIMBOAI_VERSION_MINOR {minor}
|
|
||||||
#define LIMBOAI_VERSION_PATCH {patch}
|
|
||||||
#define LIMBOAI_VERSION_STATUS "{status}"
|
|
||||||
|
|
||||||
#define LIMBOAI_VERSION_HASH "{git_hash}"
|
|
||||||
#define LIMBOAI_VERSION_SHORT_HASH "{git_short_hash}"
|
|
||||||
|
|
||||||
#define LIMBOAI_VERSION_DOC_BRANCH "{doc_branch}"
|
|
||||||
#define LIMBOAI_VERSION_DOC_URL "https://limboai.readthedocs.io/en/" LIMBOAI_VERSION_DOC_BRANCH "/"
|
|
||||||
|
|
||||||
#endif // LIMBOAI_VERSION_GEN_H
|
|
||||||
""".format(**version_info))
|
|
||||||
f.close()
|
|
|
@ -13,7 +13,6 @@
|
||||||
|
|
||||||
#include "../bt/tasks/bt_task.h"
|
#include "../bt/tasks/bt_task.h"
|
||||||
#include "../util/limbo_compat.h"
|
#include "../util/limbo_compat.h"
|
||||||
#include "limboai_version.h"
|
|
||||||
|
|
||||||
#ifdef LIMBOAI_MODULE
|
#ifdef LIMBOAI_MODULE
|
||||||
#include "core/config/project_settings.h"
|
#include "core/config/project_settings.h"
|
||||||
|
@ -569,19 +568,23 @@ Ref<Shortcut> LimboUtility::get_shortcut(const String &p_path) const {
|
||||||
}
|
}
|
||||||
|
|
||||||
void LimboUtility::open_doc_introduction() {
|
void LimboUtility::open_doc_introduction() {
|
||||||
OS::get_singleton()->shell_open(vformat("%s/getting-started/introduction.html", LIMBOAI_VERSION_DOC_URL));
|
OS::get_singleton()->shell_open(vformat("https://limboai.readthedocs.io/en/%s/getting-started/introduction.html",
|
||||||
|
LIMBO_DOC_VERSION));
|
||||||
}
|
}
|
||||||
|
|
||||||
void LimboUtility::open_doc_online() {
|
void LimboUtility::open_doc_online() {
|
||||||
OS::get_singleton()->shell_open(vformat("%s/index.html", LIMBOAI_VERSION_DOC_URL));
|
OS::get_singleton()->shell_open(vformat("https://limboai.readthedocs.io/en/%s/index.html",
|
||||||
|
LIMBO_DOC_VERSION));
|
||||||
}
|
}
|
||||||
|
|
||||||
void LimboUtility::open_doc_gdextension_limitations() {
|
void LimboUtility::open_doc_gdextension_limitations() {
|
||||||
OS::get_singleton()->shell_open(vformat("%s/getting-started/gdextension.html#limitations-of-the-gdextension-version", LIMBOAI_VERSION_DOC_URL));
|
OS::get_singleton()->shell_open(vformat("https://limboai.readthedocs.io/en/%s/getting-started/gdextension.html#limitations-of-the-gdextension-version",
|
||||||
|
LIMBO_DOC_VERSION));
|
||||||
}
|
}
|
||||||
|
|
||||||
void LimboUtility::open_doc_custom_tasks() {
|
void LimboUtility::open_doc_custom_tasks() {
|
||||||
OS::get_singleton()->shell_open(vformat("%s/getting-started/custom-tasks.html", LIMBOAI_VERSION_DOC_URL));
|
OS::get_singleton()->shell_open(vformat("https://limboai.readthedocs.io/en/%s/getting-started/custom-tasks.html",
|
||||||
|
LIMBO_DOC_VERSION));
|
||||||
}
|
}
|
||||||
|
|
||||||
void LimboUtility::open_doc_class(const String &p_class_name) {
|
void LimboUtility::open_doc_class(const String &p_class_name) {
|
||||||
|
@ -593,7 +596,8 @@ void LimboUtility::open_doc_class(const String &p_class_name) {
|
||||||
#ifdef LIMBOAI_MODULE
|
#ifdef LIMBOAI_MODULE
|
||||||
SHOW_DOC("class_name:" + p_class_name);
|
SHOW_DOC("class_name:" + p_class_name);
|
||||||
#elif LIMBOAI_GDEXTENSION
|
#elif LIMBOAI_GDEXTENSION
|
||||||
OS::get_singleton()->shell_open(vformat("%s/classes/class_%s.html", LIMBOAI_VERSION_DOC_URL, p_class_name.to_lower()));
|
OS::get_singleton()->shell_open(vformat("https://limboai.readthedocs.io/en/%s/classes/class_%s.html",
|
||||||
|
LIMBO_DOC_VERSION, p_class_name.to_lower()));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,6 +36,8 @@ using namespace godot;
|
||||||
|
|
||||||
#define LOGICAL_XOR(a, b) (a) ? !(b) : (b)
|
#define LOGICAL_XOR(a, b) (a) ? !(b) : (b)
|
||||||
|
|
||||||
|
#define LIMBO_DOC_VERSION "latest"
|
||||||
|
|
||||||
class LimboUtility : public Object {
|
class LimboUtility : public Object {
|
||||||
GDCLASS(LimboUtility, Object);
|
GDCLASS(LimboUtility, Object);
|
||||||
|
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
/**
|
|
||||||
* limboai_version.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 LIMBOAI_VERSION_H
|
|
||||||
#define LIMBOAI_VERSION_H
|
|
||||||
|
|
||||||
#include "limboai_version.gen.h"
|
|
||||||
|
|
||||||
#ifdef LIMBOAI_MODULE
|
|
||||||
#include "core/string/ustring.h"
|
|
||||||
#elif LIMBOAI_GDEXTENSION
|
|
||||||
#include <godot_cpp/variant/string.hpp>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
inline String GET_LIMBOAI_VERSION() {
|
|
||||||
String version = itos(LIMBOAI_VERSION_MAJOR) + "." + itos(LIMBOAI_VERSION_MINOR);
|
|
||||||
if (LIMBOAI_VERSION_PATCH != 0) {
|
|
||||||
version += "." + itos(LIMBOAI_VERSION_PATCH);
|
|
||||||
}
|
|
||||||
if (strlen(LIMBOAI_VERSION_STATUS) > 0) {
|
|
||||||
version += "-" + String(LIMBOAI_VERSION_STATUS);
|
|
||||||
}
|
|
||||||
return version;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define GET_LIMBOAI_FULL_VERSION() GET_LIMBOAI_VERSION() + " [" + LIMBOAI_VERSION_SHORT_HASH + "]"
|
|
||||||
|
|
||||||
#endif // LIMBOAI_VERSION_H
|
|
Loading…
Reference in New Issue