Files
xbot_build/src/Xbot/XBotHelper.py
2025-09-22 21:07:30 +08:00

47 lines
1.6 KiB
Python

from Xbot import XbotProject, XbotBlock
class XBotGlobalVariable(object):
@classmethod
def build_glv_var(cls, var_name: str):
assert isinstance(var_name, str)
return f"glv['{var_name}']"
class XBotVariableUtil(object):
self_prefix_string = "self."
@classmethod
def is_self_var(cls, var_name: str):
return var_name.startswith(cls.self_prefix_string)
@classmethod
def trim_self(cls, var_name):
return var_name[len(cls.self_prefix_string):]
@classmethod
def create_comment_block(cls, comment):
comment_block = XbotBlock(id="", name="programing.comment")
comment_block.fields["content"].set_text_value(comment)
return comment_block
@classmethod
def create_var_block(cls, project: XbotProject, var_name: str, var_value: str):
set_var_block = XbotBlock(id="", name="programing.variable")
# 绑定的变量 = ret_name (any)
set_var_block.fields["value_type"].set_text_value("any")
if cls.is_self_var(var_name):
var_value_without_self = cls.trim_self(var_name)
cls.add_global_if_not_existed(project, var_value_without_self)
set_var_block.variables["variable"].set_name(var_value_without_self)
else:
set_var_block.variables["variable"].set_name(var_name)
set_var_block.fields["value"].set_expression_value(var_value)
return set_var_block
@classmethod
def add_global_if_not_existed(cls, project: XbotProject, var_name: str) -> None:
if not project.global_variable_exist(var_name):
project.add_global_variable(var_name, value=None)