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

OCLIDE - IDE для OpenComputers

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

У многих новичков возникает вопрос - где писать код для OpenComputers? Кто-то советует VS, кто-то сторонник IDEA, кому-то по душе Atom, а кто-то вообще пишет код сразу в игре. Я решил пополнить этот список вариантов собственным решением.

Вашему вниманию представляется интегрированная среда разработки (ИСР) под OpenComputers - OCLIDE. Проект находится на стадии публичного альфа-тестирования, поэтому критика приветствуется.

На данный момент в ИСР присутствуют:
- Подсветка Lua-синтаксиса
- Система проектов
- Интеграция с OCEmu (OpenOS 1.7.5)
- Поддержка Windows 10 и Ubuntu 20.04

В планах на будущее:
- Автодополнение кода
- Добавление эмулятора на базе Ocelot Brain
- Адаптация кода для работы на Mac

- Опции настройки цветовой палитры редактора и используемого стандарта Lua

- Поддержка сторонних переводов приложения


Ссылка на проект: https://github.com/Vladg24YT/Oclide/ (ветка master - стабильная, ветка oclide-rc1 - indev сборки)

Прога весит ~25 Мб, потребляет 167 Мб ОЗУ.

 

Скриншот:

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

OCLIDE_screenshot.png

 

Изменено пользователем VladG24_YT
Добавил инфу про ветви репозитория

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


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

IDE заточенная специально под OpenComputers

...

- (нестабильная) Интеграция с OCEmu (билд с OpenOS 1.6)

А в чём заключается заточка под OpenComputers кроме нестабильной интеграции с эмулятором? И в чём заключается интеграция?

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


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

@eu_tomat заточка под OpenComputers в данный момент заключается только в нестабильной интеграции с эмулятором.

Под "интеграцией" я подразумевал созданный с нуля конфигуратор для машины OCEmu и запуск самого эмулятора из кода ИСР.

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

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


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

Интересная задумка. Надо будет попробовать.

Вопрос вызывает старая версия OpenOS. Будет ли она обновляться?

Слежу за темой.:D

Кто где, а я в Notepad++!

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


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

@vford в эмуляторе старая версия OpenOS вследствие того, что взят билд OCEmu датированный где-то 2016 годом. Обновление конечно же будет, но мне сначала надо научиться ладить с MSYS2 и Luarocks чтобы скомпилировать наиболее свежие исходники.

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


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

Обновление конечно же будет, но мне сначала надо научиться ладить с MSYS2 и Luarocks.

Хорошо. Тогда, как говорится, "будем посмотреть".:smile9:

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


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

Гм, задумка прикольная, но, имхо, не то чтоб прям уж нужная.

Я вполне спокойно пользуюсь связкой gedit + MC 1.7.10 + OC 1.7.5 с отключенной буферизацией.

А кстати, что за "проекты" такие, и как они работают?

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


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

А кстати, что за "проекты" такие, и как они работают?

Чисто косметическая вещь, чтобы визуально разграничивать все файлы/скрипты на группы. В ИСР они отображаются через дерево файлов в левой части интерфейса.

Принцип работы пока очень простой и банальный:

  1. При создании проекта создаётся директория
  2. Все файлы, созданные в рамках этого проекта, хранятся в ней
  3. Перед запуском OCEmu, директория проекта копируется на файловую систему машины в папку /home
Изменено пользователем VladG24_YT

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


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

Очень полезным считаю автодополнение кода.
Причем как и lua кода в папочках, так и прямое API к OC.
Ибо сейчас юзаю tabnine в Atom (Vscode не влюбился мне) что бы он периодически подсказывал код и то в слепую)

Идея годная, главное что-бы было логическое завершение.

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


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

Идея годная, главное что-бы было логическое завершение

Согласен. Здесь был уже один парень, тоже писал IDE для OpenComputers (OpenComputers Studio) - и тишина.

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


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

Новое обновление: PAT Pre-release v0.0.4

- Добавлен алгоритм предустановки OpenOS в файловую систему машины
- Фикс обновления списка компонентов в конфигураторе
- Фикс парсинга конфига OCEmu
- Добавлена поддержка любых UUID файловой системы помимо той, что стоит по умолчанию (34eb7b28-14d3-4757-b326-dd1609b0a92e)
- Ряд фиксов в коде редактора, конфигуратора и вспомогательных классов
- Начата работа над автодополнением кода Lua стандарта 5.3

Ссылка: 
https://github.com/Vladg24YT/Oclide/releases/tag/v0.0.4

 

Скриншот обновлённого конфигуратора:

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

image.png.da96ff41f63fa16c83cb0736d13c93ae.png

 

Изменено пользователем VladG24_YT
Поместил изображение под спойлер

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


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

Архитектура IDE позволяет легко добавить поддержку других эмуляторов сред выполнения, например, Оцелота или самого майна. Последнее может быть особо полезно при разработке программ для железа из аддонов

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


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

добавить поддержку других эмуляторов сред выполнения, например, Оцелота

Об этом думал, некоторые наработки даже оставил в коде. Благодаря совместимости Scala и Java, интегрирование Ocelot Brain довольно лёгкая задача, но перед её реализацией меня остановила нехватка собственных знаний для создания окна вывода (а-ля интерфейс экрана из OC), так как простой терминал ввода/вывода невозможно использовать для работы с растровой графикой. Создать двумерный массив из 8000 одинаковых компонентов и использовать каждый отдельный как пиксель конечно можно, но делать такое, тем более на Java - это всё равно что отправить оперативную память прямиком в ад, а писать собственный GUI-фреймворк для работы с классом Graphics из AWT ради одного простецкого окошка как-то нелогично. Тем не менее полностью от этой задумки я пока не отказываюсь.

 

1 час назад, hohserg сказал:

или самого майна

Да, это легко сделать, но моя первостепенная задача была создать именно standalone-среду. Так что, если поддержка майна и будет сделана, то не раньше релиза.

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

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


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

8000 одинаковых компонентов и использовать каждый отдельный как пиксель конечно можно

Зачем пиксели? для ОС можно использовать символьную графику.

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


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

Зачем пиксели?

В данном случае под "пикселями" я имел в виду не обычные пиксели, а единицы измерения разрешения экрана OC.

16 минут назад, NEO сказал:

для ОС можно использовать символьную графику

Если речь идёт об отрисовке через ASCII, то я не совсем пониманию, как с помощью такой отрисовки возможно реализовать изменение цвета заднего фона индивидуального символа.

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

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


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

В данном случае под "пикселями" я имел в виду не обычные пиксели, а единицы измерения разрешения экрана OC.

Если речь идёт об отрисовке через ASCII, то я не совсем пониманию, как с помощью такой графики возможно реализовать изменение цвета заднего фона индивидуального символа.

Что думаешь про Canvas? Как я понял ты используешь Swing а в нём если не ошибаюсь был холст для рисования символами.

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


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

Что думаешь про Canvas?

Если вы имеете ввиду java.awt.Canvas, то выглядит похоже на то, что нужно. Спасибо за наводку)

 

18 минут назад, NEO сказал:

Swing а в нём если не ошибаюсь был холст для рисования символами.

Изначально я изучал туториалы Oracle по отрисовке именно в Swing, где вся отрисовка ведётся через paint(java.awt.Graphics) и paintComponent(java.awt.Graphics), а обновлённая статья Oracle по отрисовке и в AWT и в Swing не упоминает Canvas совсем, поэтому мне придётся сначала поэкспериментировать с этим классом, прежде чем я смогу точно сказать, то ли это, чего мне не хватало.

Изменено пользователем VladG24_YT
Дополнил инфу про Swing

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


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

Новое обновление: PAT Pre-release 0.0.5

 

- Добавлен алгоритм запуска OCEmu для Ubuntu и Arch Linux (требует предустановленного интерпретатора Lua 5.2 и библиотек luaffib, luafilesystem, luautf8 и SDL2)
- Обновлены библиотеки
- Фиксы запуска OCEmu
- Фикс отображения неверной версии в заголовке основного окна IDE
- Фикс невозможности создать проект на дистрибутивах Linux
- Фикс критической ошибки при запуске OCEmu
- Удалена библиотека LuaJ, код переделан на работу с репаком OC-LuaJ от MightyPirates через Ocelot Brain

 

Скачать:
https://github.com/Vladg24YT/Oclide/releases/tag/v0.0.5

 

Набросок окон автодополнения кода:

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

image.png.32d8a7e21349221f223c699fb0a3bcba.png

 

Изменено пользователем VladG24_YT
Дополнил список изменений

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


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

- Добавлен алгоритм запуска OCEmu для Ubuntu и Arch Linux (требует предустановленного интерпретатора Lua 5.2 и библиотек luaffib, luafilesystem, luautf8 и SDL2)

Там вроде и 5.3 работает. И на нем лучше и писать ибо там ось новой версии.

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


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

И на нем лучше и писать ибо там ось новой версии

Приму к сведению.

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


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

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

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

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

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

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

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

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

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


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