Nodeflow
Nodeflow is a library for graph based programming interfaces in minecraft on the fabric modloader.
Getting Started
Add a dependency on the library from jitpack. You can also use the modrinth maven, but you might end having to manually add a dependency on mixin extras then.
repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
implementation 'com.github.mattidragon:nodeflow:$nodeflow_version'
}
To get started you will want to create a GraphEnvironment. Most mods will only ever need one, but if the available nodes change, feel free to create one every time.
public static final GraphEnvironment ENVIRONMENT = GraphEnvironment.builder()
// Adds context that nodes need to execute. Stays same during each evaluation
.addContextTypes(ContextType.SERVER_WORLD, ContextType.BLOCK_POS, ContextType.SERVER)
// Datatypes that are allowed to be used. Exists for nodes that can act on any data type to know which ones are allowed
.addDataTypes(DataType.BOOLEAN, DataType.NUMBER, DataType.STRING)
// Adds groups of nodes at a time. They are also used for grouping in the editor.
.addNodeGroups(new TagNodeGroup(NodeGroup.MATH), new TagNodeGroup(NodeGroup.ADVANCED_MATH), new TagNodeGroup(NodeGroup.LOGIC), new TagNodeGroup(ModNodeTypes.REDSTONE_GROUP))
// Adds single nodes. They will be placed in a misc group.
.addNodeTypes(NodeType.TIME)
.build();
Using this environment you can create a EditorScreen, although you usually don't have any use for the base class.
If you are using a block entity for holding your code you can make it implement GraphProvidingBlockEntity in addition to extending BlockEntity.
This interface already implements ExtendedScreenHandlerFactory so all you have to do is open the screen from the block entity.
Nodeflow will handle syncing the graph on change.
If you aren't storing the graph in a block you can create a subclass of EditorScreen and handle syncing yourself (or not if you are fully client sided).
Proper javadocs and a wiki might come in the future.
How to Install Nodeflow (Mod)
Nodeflow by MattiDragon is verified for Fabric, Quilt across Minecraft versions 1.20.2, 1.20.4, 1.20.6, 1.21.1, 1.21.5, 1.21.6, 26.1-snapshot-5, 26.1.2 (latest release: 2.3.0+mc.26.1.2, file size: 163 KB). Follow the steps below to install it safely from ModCraft.tv:
- Click the Download button above and select your Minecraft version (1.20.2, 1.20.4, 1.20.6, 1.21.1, 1.21.5, 1.21.6, 26.1-snapshot-5, 26.1.2) and platform (Fabric, Quilt).
- Make sure you have the compatible loader or environment installed for Fabric, Quilt.
- Move the downloaded Nodeflow file into your Minecraft
.minecraft/modsfolder and launch the game.
All Versions
+ Add Version- Switched to use of read and write views in most places
- Updated to 1.21.6
- Updated to 1.21.5
- Updated to 1.21.1
- Updated to 1.20.6
- Add tagging system for nodes
- Fix tooltips rendering for the whole node and not just the config button
- Clean up navigation
- Add nicknames for nodes
- Fix context menu sometimes going outside the screen
- Changed how connections look. They are now textured.
- Fix add node menu going outside the editor area
- Updated to 1.20.4
- Updated to 1.20.2
- Switched to split client sources
- Reworked how node groups work
- Added missing controlify translations
- Switch to sprite based textures instead of the old atlas, like vanilla guis
- Now [on modrinth](https://modrinth.com/mod/nodeflow)!