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)