Введение в Luanium
В этом руководстве вы узнаете о основных отличиях Luanium от обычного Lua и базовые знания, с помощью которых вы сможете начать изучение основных библиотек.
Основные изменения
В Luanium нету большинства библиотек по типу os, env и ключевого слова require, вместо них используются другие библиотеки и функции.
Основные понятия
Впервую очередь вам нужно узнать о новом понятии, которое вы будете очень часто встречать в дальнейшем:
Пространство имён (namespace)
Пространство имён — это контейнер для логической группировки кода. В этот контейнер можно положить всякие переменные, функции, чтобы потом использовать их в других скриптах.
Допустим, что мы пишем калькулятор:
sum.lua
1 2 3 | |
div.lua
1 2 3 4 5 6 | |
calc.lua
1 2 3 4 5 6 7 | |
calc.lua Не сможет вызвать divide() и sum(), т.к. в файле calc.lua они просто не объявлены. Вместо того, чтобы копировать содержимое div.lua и sum.lua мы можем использовать пространства имён:
Namespace() - Эта функция добавляет текущий файл скрипта в указанное пространство имён.
sum.lua
1 2 3 4 | |
div.lua
1 2 3 4 5 6 7 | |
Теперь наши скрипты реализующие работу с расчётами добавлены в пространство имён. Чтобы использовать это пространство имён нужно обновить calc.lua добавив вызов функции Include():
calc.lua
1 2 3 4 5 6 7 8 9 | |
Индексация дисков
У каждого диска в игре есть свой индекс/номер.
У диска, с которого игра запускает инициальный скрипт (такие диски называются загрузочными) индекс всегда будет равен 0.
Функция Include()
Импортирование файлов
Функция Include() может импортировать напрямую луа файлы:
1 | |
Контекст выполнения
Все скрипты, написаные на lua выполняются в "контекстах выполнения" (я не смог придумать название получше). Сейчас я объясню, что это для вас значит:
Каждый вызов функции Include() импортирует что либо не в файл, а в "контекст выполнения", т.е. если вы импортировали что-то в одном файле, то это автоматически импортируется в остальных файлах этого контекста:
first.lua
1 2 | |
second.lua
1 | |
Seealso
Контексты выполнения так же содержат различные переменные, которые можно получать в скриптах Luanium. Подробнее об этом можно узнать в Контекст выполнения
Описание работы функции Include() за кулисами
Когда вы импортируете что либо, импортируемые файлы на самом деле исполняются:
first.lua
1 | |
second.lua
1 2 | |