Скачать OC-Wasm — Minecraft Моды — MetaMods

OC-Wasm

Активный

Установок

0

Последнее обновление

1 год назад
Клиент
Технологические
Аддоны

Обзор OC-Wasm

OC-Wasm представляет собой архитектуру центрального процессора для мода OpenComputers, предназначенную для выполнения бинарных файлов WebAssembly.

С чего начать

Чтобы запустить базовое приложение по типу «привет, мир» с использованием OC-Wasm, выполните несколько основных шагов:

Сборка компьютера В OC-Wasm не добавляются новые предметы — используются стандартные компоненты OpenComputers, как и при создании компьютера на Lua. После создания процессора или APU удерживайте его в руке и нажмите Shift+ПКМ, чтобы сменить архитектуру — аналогично переключению между Lua 5.2 и 5.3. В списке доступных архитектур выберите WebAssembly.

Установка BIOS Как и любому компьютеру, системе на WebAssembly требуется BIOS. Если ваша программа очень мала (≤4 КБ), её можно записать прямо на EEPROM и использовать как BIOS. Однако чаще всего программы слишком велики для EEPROM, поэтому потребуется BIOS, способный загружать программу с диска. OC-Wasm-BIOS решает эту задачу: он загружает программу из файла /init.wasm на диске (подобно тому, как BIOS Lua загружает /init.lua).

Поскольку готового предмета с BIOS нет, потребуется скачать BIOS на работающий компьютер (вероятно, на Lua, например с помощью wget) и прошить его на EEPROM (например, командой flash). Вот однострочная команда для этого:

wget https://gitlab.com/api/v4/projects/27476164/jobs/artifacts/main/raw/packed.wasm?job=Compile -O bios.wasm && flash bios.wasm OC-Wasm-BIOS

Создание приложения Разработку приложения обычно проводят вне Minecraft с использованием стандартных инструментов программирования. После компиляции файла .wasm присвойте ему имя init.wasm и поместите в корневую директорию жёсткого диска или дискеты. Это можно сделать несколькими способами:

  • Загрузите программу в интернет, вставьте диск в работающий компьютер, скачайте файл с помощью wget и перенесите диск в новый компьютер.
  • Разместите файл непосредственно в нужном месте папки сохранения игры Minecraft, если у вас есть к ней доступ. Рекомендуется установить bufferChanges в значение false в разделе filesystem конфигурационного файла OpenComputers, если вы часто используете этот метод.

Запуск компьютера После выполнения подготовительных шагов остаётся только загрузить компьютер!

Разработка на Rust

Для удобства написания программ OC-Wasm на Rust доступен ряд крейтов:

  • OC-Wasm-Cassette — упрощает использование асинхронного исполнителя Cassette для запуска async fn в качестве основной функции.
  • OC-Wasm-Sys — предоставляет низкоуровневые FFI-привязки. Обычно его не используют напрямую, он служит основой для остальных крейтов.
  • OC-Wasm-Safe — набор обёрток над OC-Wasm-Sys, обеспечивающих безопасность памяти, корректную работу с дескрипторами непрозрачных значений и взаимное исключение для системных вызовов, которые не могут выполняться параллельно.
  • OC-Wasm-Futures — набор асинхронных фьючерсов, упрощающих написание программ OC-Wasm с использованием async и await.
  • OC-Wasm-OpenComputers — высокоуровневые обёртки для API компонентов, поддерживаемых стандартным OpenComputers (например, API редстоуна, файловой системы, GPU и т.д.). + OC-Wasm-Immersive — высокоуровневые обёртки для API компонентов, поддерживаемых машинами модов Immersive Engineering и Immersive Technology.

На момент написания крейт OC-Wasm-OpenComputers ещё не завершён, и существует мало библиотек для высокоуровневого взаимодействия с другими модами (например, через адаптер). Однако сообществу предлагается积极参与 в развитии проекта — принимаются пул-реквесты в OC-Wasm-OpenComputers и предложения новых крейтов для контента других модов.

Разработка на Zig

Участник сообщества OpenComputers под ником AmandaC начал работу над репозиторием с библиотекой Zig и несколькими небольшими примерами для OC-Wasm.

Другие версии

DCNick3 создал порт OC-Wasm для Minecraft 1.7.10. Если вы столкнётесь с проблемами при его использовании, сообщайте о них в соответствующем репозитории, а не здесь.

Технические детали

Если вы планируете работать с языком, для которого ещё нет библиотек поддержки, или просто хотите разобраться в внутреннем устройстве системы, ознакомьтесь с Javadoc OC-Wasm.

Участники проекта
Hawk778

Hawk778

Создан: 6 апр 2024

ID: 90457