/* limbo_utility.cpp */ #include "limbo_utility.h" #include "bt/bt_task.h" #include "core/io/image_loader.h" #include "core/variant/variant.h" #include "editor/editor_node.h" #include "editor/editor_scale.h" #include "scene/resources/texture.h" LimboUtility *LimboUtility::singleton = nullptr; LimboUtility *LimboUtility::get_singleton() { return singleton; } String LimboUtility::decorate_var(String p_variable) const { String var = p_variable.trim_prefix("$").trim_prefix("\"").trim_suffix("\""); if (var.find(" ") == -1 and not var.is_empty()) { return vformat("$%s", var); } else { return vformat("$\"%s\"", var); } } String LimboUtility::get_status_name(int p_status) const { switch (p_status) { case BTTask::FRESH: return "FRESH"; case BTTask::RUNNING: return "RUNNING"; case BTTask::FAILURE: return "FAILURE"; case BTTask::SUCCESS: return "SUCCESS"; default: return ""; } } Ref LimboUtility::get_task_icon(String p_class_or_script_path) const { ERR_FAIL_COND_V_MSG(p_class_or_script_path.is_empty(), Variant(), "BTTask: script path or class cannot be empty."); String base_type = p_class_or_script_path; if (p_class_or_script_path.begins_with("res:")) { Ref