Mod
Nodeflow
No reviews yet
A library for graph based programming interfaces in minecraft on the fabric modloader
Provides a framework or library for other mods to use.
Community voices
Reviews
Click once to include, again to exclude, again to clear
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
Compatibility
Supported Environments
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
About
Description
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.
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers