Перейти к содержимому
Vladd11

Роботизированный склад на OpenComputers

Рекомендуемые сообщения

Робот умеет сортировать, искать и выдавать предметы по запросу игрока из сундуков. Для управления используется приложение на Android, генерирующие программу для робота.

Github: https://github.com/vladd11/OpenComputersStorage

APK: https://github.com/vladd11/OpenComputersStorage/releases/download/1.0/app-release.apk

UPD: при установке Google Play Защита ругается на неизвестного разработчика. Если вы не доверяете - соберите приложение самостоятельно.

Скрытый текст
  1. Устанавливаем Android Studio
  2. Открываем Get from VCS -> вставляем URL -> Clone.image.thumb.png.f074b2a7e1ad1936a2bfb5f2b5fd698c.png
  3. На телефоне включаем отладку по USB (см. Google). Подключаем к компу.
  4. Нажимаем Shift+F10 (запуск), ждём.
  5. Когда приложение запустится, отладку и смарт можно отключать от компа, приложение останется.
  6. Закрываем Android Studio, радуемся.

Демонстрация работы: 

 

 

Склад строится строго к положительной оси X (на отрицательной оси работа не тестировалась) и также может быть расширен по оси Z.

Робот может использовать любые сундуки, в том числе те, которые расположены сбоку/снизу/сверху (он будет поворачиваться к ним).

Используемая конфигурация (монитор и клавиатура с графической картой необязательны):

Скрытый текст

image.png.94fd908cc2ad5f8a47001daf2d31e84b.png

1 большой сундук занимает примерно 1.5 килобайт памяти на диске. OpenOS занимает 375.

Таким образом, 1МБ диск вместит примерно 400 сундуков в памяти.image.png.47628fc4ce61ee6566e078708f44e4ca.png

 

Установка программы (OpenOS должна быть установлена на диск):

mkdir chests
rm .shrc
wget https://raw.githubusercontent.com/vladd11/OpenComputersStorage/main/robot/.shrc
wget https://raw.githubusercontent.com/vladd11/OpenComputersStorage/main/robot/find.lua
wget https://raw.githubusercontent.com/vladd11/OpenComputersStorage/main/robot/movement.lua
wget https://raw.githubusercontent.com/vladd11/OpenComputersStorage/main/robot/server.lua
wget https://raw.githubusercontent.com/vladd11/OpenComputersStorage/main/robot/update.lua
wget https://raw.githubusercontent.com/vladd11/OpenComputersStorage/main/robot/utils.lua
edit server.lua

В начале файла измените 192.168.1.106 на IP своего смартфона. Если он находится в локальной сети (подключение по WiFi), удалите диапазон 192.168.0.0/16 из blacklist (.minecraft/config/opencomputers/settings.conf, 607 строка).

Сохраните и закройте файл (Ctrl+S, Ctrl+X).

Перезагрузите робота и откройте приложение на Android'е.

Выберите используемые моды, дождитесь загрузки.

 

Проблемы:

1. Если предмет переименован на наковальне, его иконка не будет найдена (вместо этого будет видно новое название и количество).

2. Если предмет имеет NBT (зачарования, прочность, заряд и т.д.) сортировка попытается соединить их в 1 стак. В итоге предмет останется в инвентаре робота.

3. Задержка доставки команд - около 5 секунд. Можно изменить в файле server.lua

UPD: Некорректная работа в одиночной игре, если язык - русский. В таком случае нужно переключится на английский (США) либо текстуры нужно переименовывать на русский язык вручную, BlocksRenderer не умеет сохранять Items с кириллицей. На серверах работает правильно вне зависимости от языка.

 

TODO:

1. Более удобное сканирование сундуков (например по диапазону координат).

2. Перенос текстур из assets приложения в кэш (в папку Android/media) для того, чтобы дать пользователю возможность добавления новых текстур без перекомпиляции. Если нужно добавить мод, которого нет в списке, см. видео. Для выполнения нужно скачать скрипт и установить Python.

 

Скрытый текст

 

 

Изменено пользователем Vladd11

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А как ты сделал рендер предметов, даже модовых, в приложении для смартфона?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
11 час назад, hohserg сказал:

А как ты сделал рендер предметов, даже модовых, в приложении для смартфона?

Использовал мод BlocksRenderer, получил кучу отрендренных предметов (в т.ч. блоков). Потом переименовал скриптом, чтобы убрать пробелы и убрать заглавные. Потом переместил в assets приложения.

Ниже пример для ThermalExpansion.

 

Изменено пользователем Vladd11

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добавлена поддержка Thermal Expansion 5, Thermal Dynamics, Thermal Fondation. Если приложение уже было установлено - очистите хранилище приложения (О приложении -> Хранилище и кэш -> Очистить хранилище/данные). Размер текстур - 6Мб.

Фасады Thermal Dynamics отрендрены не были из-за большого количества и необходимости доработки под конкретный modpack. Если они вам нужны - рендерите текстуры самостоятельно (см. выше).

Изменено пользователем Vladd11

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...