Nodeflow
Библиотека для интерфейсов программирования на основе графов в Minecraft на загрузчике Fabric
- Загрузчики
- FabricQuilt
- Скачиваний на Modrinth
- 5,6 тыс.
- Подписчиков на Modrinth
- 12
- версий
- 11
- Обновлён
- 13 апреля 202613 апр.
- Опубликован
- в 2023
Коротко о моде
Нужен в игре; на сервере — по желанию
Nodeflow
Nodeflow — это библиотека для графовых программных интерфейсов в Minecraft на загрузчике Fabric.
С чего начать
Добавьте зависимость на библиотеку из jitpack. Также можно использовать maven Modrinth, но тогда, возможно, придётся вручную добавить зависимость на 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, хотя обычно базовый класс вам ни к чему.
Если вы используете блок-энтити для хранения своего кода, можете заставить его реализовать GraphProvidingBlockEntity в дополнение к наследованию от BlockEntity. Этот интерфейс уже реализует ExtendedScreenHandlerFactory, так что всё, что вам нужно — открыть экран из блок-энтити. Nodeflow сам позаботится о синхронизации графа при изменениях.
Если вы не храните граф в блоке, можете создать подкласс EditorScreen и обрабатывать синхронизацию самостоятельно (или не обрабатывать, если всё полностью на стороне клиента).
Нормальные javadocs и вики, возможно, появятся в будущем.
Частые вопросы
Как установить Nodeflow?
Установите Fabric под свою версию Minecraft, скачайте Nodeflow под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть Nodeflow?
У Nodeflow есть сборки для Minecraft 1.20.6, 1.21.1, 1.21.5–1.21.6, 26.1.2 ….
Нужен ли Nodeflow на сервере?
Нужен в игре; на сервере — по желанию