Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

新 UI 设想:使用节点——一劳永逸的任务规划系统 #192

Open
Hapenia-Lans opened this issue Jul 8, 2023 · 7 comments
Open
Labels
enhancement New feature or request

Comments

@Hapenia-Lans
Copy link

说说你遇到的问题?

鉴于添加功能,添加几个新按钮的 issue 层出不穷,不断往上打补丁也不是好办法(shi山是怎样炼成的),有必要使用一个更加灵活的解决方案,可以满足玩家大幅度的自定义需求。

有什么好的想法?

我们可以使用节点式的任务系统,将整个系统拆分成功能节点,再额外添加几个流控制节点,就至少可以实现当前的任务系统功能。

我们可以默认提供此套实现,玩家以此为基础可以构建自己的方案,并将方案保存为蓝图,可以分享给其他玩家使用。

如果要添加新功能,就只需添加对应的新节点即可,而无需在页面上再做改动。

其他内容

参考图:

Blender 节点系统

image

UE 蓝图系统

image

Godot Visual Script

image

Coding 可视化持续集成 流水线

image

@Hapenia-Lans Hapenia-Lans added the enhancement New feature or request label Jul 8, 2023
@Hapenia-Lans Hapenia-Lans changed the title 新 UI 设想:使用节点——一劳永逸的 UI 解决方案 新 UI 设想:使用节点——一劳永逸的任务规划系统 Jul 8, 2023
@flower-knight
Copy link

低代码平台啊,我们负责人心心念念的东西,听他的描述这这东西似乎有点磨人。类似的东西有玩家庭物联网比较常用的Node-RED。
image

@flower-knight
Copy link

这么一说感觉可以通过node-red调用maa的api来完成一些定时功能,就是ui会有点丑

@ChingCdesu
Copy link
Member

这个想法确实不错,但是低代码平台用下来,总感觉差强人意
这个还得framework那边支持 @MistEO

@Hapenia-Lans
Copy link
Author

我们可以从粗粒度开始,再逐渐添加更细粒度的选项/节点。例如一开始我们可以提供和当前 MAA 的一键长草相同的功能节点和一些流程控制节点。

image

@Hapenia-Lans
Copy link
Author

再加入几个 input,例如当前时间,当前理智量,当前仓库中某个物品的数量,结合 if else 就能实现很多高级内容了。

@bakashigure
Copy link
Member

感觉这是自定义任务流程的终极解决方案了,但是似乎相当难实现

@fghpdf
Copy link

fghpdf commented Jul 22, 2023

AirFlow 如何?
这里是官方文档:https://airflow.apache.org/docs/apache-airflow/stable/index.html

这个也是一个功能强大的 workflow 平台,并且有类似 Python 的 DSL 语言可以让用户自定义流程。

image

from datetime import datetime

from airflow import DAG
from airflow.decorators import task
from airflow.operators.bash import BashOperator

# A DAG represents a workflow, a collection of tasks
with DAG(dag_id="demo", start_date=datetime(2022, 1, 1), schedule="0 0 * * *") as dag:

    # Tasks are represented as operators
    hello = BashOperator(task_id="hello", bash_command="echo hello")

    @task()
    def airflow():
        print("airflow")

    # Set dependencies between tasks
    hello >> airflow()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants