first commit
This commit is contained in:
47
src/Xbot/XBotHelper.py
Normal file
47
src/Xbot/XBotHelper.py
Normal file
@@ -0,0 +1,47 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user