diff --git a/Скриптинг.md b/Скриптинг.md index bac8a83..b0d97f5 100644 --- a/Скриптинг.md +++ b/Скриптинг.md @@ -5,102 +5,124 @@ ## Функции, доступные в скриптах (0.16) ```lua -block_name(id) -- возвращает строковый id блока, принимая в качестве агрумента числовой +block_name(id) ``` +Возвращает строковый id блока, принимая в качестве агрумента числовой ```lua -block_index(id) -- возвращает числовой id блока, принимая в качестве агрумента строковый +block_index(id) ``` +Возвращает числовой id блока, принимая в качестве агрумента строковый ```lua -get_block(x, y, z) -- возвращает числовой id блока на указанных координатах +get_block(x, y, z) ``` +Возвращает числовой id блока на указанных координатах ```lua -get_block_states(x, y, z) -- возвращает состояние (поворот + доп. информация) в виде целого числа +get_block_states(x, y, z) ``` +Возвращает состояние (поворот + доп. информация) в виде целого числа ```lua -set_block(x, y, z, id, states) -- устанавливает блок с заданным числовым id и состоянием (0 - по-умолчанию) на заданных координатах --- НЕ вызывает событие on_placed +set_block(x, y, z, id, states) ``` +Устанавливает блок с заданным числовым id и состоянием (0 - по-умолчанию) на заданных координатах. +НЕ вызывает событие on_placed ```lua -is_solid_at(x, y, z) -- проверяет, является ли блок на указанных координатах полным +is_solid_at(x, y, z) ``` +Проверяет, является ли блок на указанных координатах полным ```lua -is_replaceable_at(x, y, z) -- проверяет, можно ли на заданных координатах поставить блок (примеры: воздух, трава, цветы, вода) +is_replaceable_at(x, y, z) ``` +Проверяет, можно ли на заданных координатах поставить блок (примеры: воздух, трава, цветы, вода) ```lua -blocks_count() -- возвращает количество id доступных в движке блоков +blocks_count() ``` +Возвращает количество id доступных в движке блоков ```lua -get_player_pos() -- возвращает x, y, z координаты игрока +get_player_pos() ``` +Возвращает x, y, z координаты игрока ```lua -set_player_pos(x, y, z) -- устанавливает x, y, z координаты игрока +set_player_pos(x, y, z) ``` +Устанавливает x, y, z координаты игрока ```lua -get_player_rot() -- возвращает x, y вращения камеры (в радианах), где значение X не ограничено +get_player_rot() ``` +Возвращает x, y вращения камеры (в радианах), где значение X не ограничено ```lua -set_player_rot(x, y, z) -- устанавливает x, y вращения камеры (в радианах) +set_player_rot(x, y, z) ``` +Устанавливает x, y вращения камеры (в радианах) ## События блоков ```lua -function on_placed(x, y, z) -- вызывается после установки блока игроком +function on_placed(x, y, z) ``` +Вызывается после установки блока игроком ```lua -function on_broken(x, y, z) -- вызывается после разрушения блока игроком +function on_broken(x, y, z) ``` +Вызывается после разрушения блока игроком ```lua -function on_interact(x, y, z) -- вызывается при нажатии на блок ПКМ +function on_interact(x, y, z) ``` +Вызывается при нажатии на блок ПКМ ```lua -function on_update(x, y, z) -- вызывается при обновлении блока (если изменился соседний блок) +function on_update(x, y, z) ``` +Вызывается при обновлении блока (если изменился соседний блок) ```lua -function on_random_update(x, y, z) -- вызывается в случайные моменты времени (рост травы на блоках земли) +function on_random_update(x, y, z) ``` +Вызывается в случайные моменты времени (рост травы на блоках земли) ## Функции, доступные в версии 0.17 (будущая версия) Следующие три функции используется для учёта вращения блока при обращении к соседним блокам или других целей, где направление блока имеет решающее значение. ```lua -get_block_X(x, y, z) -- возвращает целочисленный единичный вектор X блока на указанных координатах с учётом его вращения (три целых числа) --- если поворот отсутствует, возвращает 1, 0, 0 +get_block_X(x, y, z) ``` +Возвращает целочисленный единичный вектор X блока на указанных координатах с учётом его вращения (три целых числа). +Если поворот отсутствует, возвращает 1, 0, 0 ```lua -get_block_Y(x, y, z) -- возвращает целочисленный единичный вектор Y блока на указанных координатах с учётом его вращения (три целых числа) --- если поворот отсутствует, возвращает 0, 1, 0 +get_block_Y(x, y, z) ``` +Возвращает целочисленный единичный вектор Y блока на указанных координатах с учётом его вращения (три целых числа). +Если поворот отсутствует, возвращает 0, 1, 0 ```lua -get_block_Z(x, y, z) -- возвращает целочисленный единичный вектор Z блока на указанных координатах с учётом его вращения (три целых числа) --- если поворот отсутствует, возвращает 0, 0, 1 +get_block_Z(x, y, z) ``` +Возвращает целочисленный единичный вектор Z блока на указанных координатах с учётом его вращения (три целых числа). +Если поворот отсутствует, возвращает 0, 0, 1 Пользовательские биты - выделенная под использования в скриптах часть поля `voxel.states` хранящего доп-информацию о вокселе, такую как вращение блока. На данный момент выделенная часть составляет 8 бит. ```lua -get_block_user_bits(x, y, z, offset, bits) -- возвращает выбранное число бит с указанного смещения в виде целого беззнакового числа +get_block_user_bits(x, y, z, offset, bits) ``` +Возвращает выбранное число бит с указанного смещения в виде целого беззнакового числа ```lua -set_block_user_bits(x, y, z, offset, bits, value) -- записывает указанное число бит значения value в user bits по выбранному смещению +set_block_user_bits(x, y, z, offset, bits, value) ``` +Записывает указанное число бит значения value в user bits по выбранному смещению