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

QoL обновление

· 3 мин. чтения
VeraDev
Создатель ScrapComputer

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

Общие оптимизации

Мы поработали над ускорением и повышением эффективности мода. Одним из значимых изменений стало то, что мы впервые оптимизировали LuaVM. Эти изменения могут быть неочевидными сразу, но вы заметите, что всё работает более плавно, особенно при выполнении сложных задач.


Оптимизация LuaVM

При добавлении поддержки изображений мы использовали одну длинную строку для обработки данных изображений. Это вызывало значительные замедления, особенно с большими изображениями (например, 256x256). Проблема была в интерпретаторе Yueliang для LuaVM, который плохо справлялся с длинными строками.

После оптимизации от VeraDev разница стала колоссальной. Посмотрите на график производительности ниже:

График оптимизации чтения строк LuaX
Каждая точка показывает тест на чтение строки размером 100 КБ.

Как вы можете видеть, это значительное улучшение. Теперь можно хранить и обрабатывать большие объёмы данных, не замедляя работу компьютера. (До тех пор, пока Scrap Mechanic не испортит их)


Полуавтоматическая подсветка синтаксиса

Мы добавили Полуавтоматическую подсветку синтаксиса для компьютера в игре. Это значительно облегчает чтение и понимание вашего кода.

Изображение с подсветкой синтаксиса

Подсветка синтаксиса работает автоматически во время набора текста, но из-за игровых ограничений она работает только при вводе текста в конце всего кода. Вы можете вручную обновить подсветку, нажав на кнопку.

Подсветка синтаксиса также помогает быстрее находить ошибки. Взгляните на этот пример:

Изображение с подсветкой ошибки

Строка с ошибкой становится красной, а связанные с ней функции отображаются тёмно-красным. Это значительно упрощает поиск и исправление ошибок.


Поддержка перевода

Мы добавили LanguageManager, так что теперь вы можете добавлять переводы в мод. Вы можете добавить любой язык, даже тот, который не поддерживается Scrap Mechanic. Однако некоторые шрифты могут не работать, если игра их не поддерживает, особенно для нелатинских языков.

Примечание: Это не работает для описаний в инвентаре, т.к они хранятся в формате JSON, а мы не можем изменять их с помощью Lua.


Аддоны теперь могут добавлять примеры

(Для разработчиков аддонов)

Мы добавили ExampleManager, он позволяет разработчикам аддонов добавлять примеры кода в компьютер. Это простая функция, позволяющая пользователям легче освоить использование ваших аддонов.


Новые шрифты

В этом обновлении мы добавили новые шрифты. Хотя 4 старых шрифта были удалены, мы добавили 5 новых. 4 из них взяты из Minecraft, а последний — это кастомный шрифт от VeraDev, предназначенный для небольших экранов.


Оптимизация дисплеев

Ben Bingo снова оптимизировал дисплеи. Он постоянно ищет способы ускорить их работу, и VeraDev (автор этого блога) пытается его остановить, т.к он заходит слишком далеко.


Генератор изображений

Теперь вы можете конвертировать PNG-изображения в специальный формат. После конвертации вы можете отображать эти изображения непосредственно на экране компьютера, что даёт вам новые возможности для добавления визуальных эффектов в игру.


Вот и всё!

Это всё для данного обновления, но предупреждаем, следующее обновление будет крупным, так что не ожидайте обновлений в ближайшие недели. Если хотите узнать, что будет в следующем обновлении, загляните на наш Discord сервер. В нём вы можете увидеть последние тизеры и пообщаться с командой.