
节点流
一个用于在Minecraft上基于Fabric模组加载器的图编程接口库
查看大图Nodeflow
Nodeflow 是一个用于在 Fabric 模组加载器上为 Minecraft 提供基于图的编程接口的库。
入门
从 jitpack 添加对该库的依赖。你也可以使用 modrinth maven, 但那样你可能最终需要手动添加对 mixin extras 的依赖。
repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
implementation 'com.github.mattidragon:nodeflow:$nodeflow_version'
}
要开始使用,你需要创建一个 GraphEnvironment。大多数模组只需要一个,但如果可用的节点发生变化,也可以随时创建一个。
public static final GraphEnvironment ENVIRONMENT = GraphEnvironment.builder()
// 添加节点执行所需的上下文。每次求值期间保持不变
.addContextTypes(ContextType.SERVER_WORLD, ContextType.BLOCK_POS, ContextType.SERVER)
// 允许使用的数据类型。用于那些可以作用于任意数据类型的节点,以便知道哪些类型被允许
.addDataTypes(DataType.BOOLEAN, DataType.NUMBER, DataType.STRING)
// 一次添加一组节点。它们也用于在编辑器中分组。
.addNodeGroups(new TagNodeGroup(NodeGroup.MATH), new TagNodeGroup(NodeGroup.ADVANCED_MATH), new TagNodeGroup(NodeGroup.LOGIC), new TagNodeGroup(ModNodeTypes.REDSTONE_GROUP))
// 添加单个节点。它们将被放入一个杂项组中。
.addNodeTypes(NodeType.TIME)
.build();
使用这个环境,你可以创建一个 EditorScreen,不过通常基类对你没什么用处。
如果你使用方块实体来保存你的代码,可以让它除了继承 BlockEntity 之外还实现 GraphProvidingBlockEntity。
该接口已经实现了 ExtendedScreenHandlerFactory,所以你只需要从方块实体打开屏幕即可。
Nodeflow 会在图发生变化时处理同步。
如果你不把图存储在方块中,可以创建 EditorScreen 的子类并自行处理同步(如果你完全是客户端侧的,也可以不处理)。
将来可能会提供完善的 javadocs 和 wiki。
正在加载版本记录…


正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。