# Частицы Частицы представляют собой таблицу, все поля которой опциональны. | Поле | Описание | По-умолчанию | | --------------- | ---------------------------------------------------------------------------- | --------------- | | texture | Текстура частицы. | "" | | frames | Кадры анимации (массив имен текстур). Должны находиться в одном атласе. | {} | | lighting | Освещение. | true | | collision | Обнаружение столкновений. | true | | max_distance | Максимальная дистанция от камеры, при которой происходит спавн частиц. | 16.0 | | spawn_interval | Интервал спавна частиц в секундах. | 1.0 | | lifetime | Среднее время жизни частиц в секундах. | 5.0 | | lifetime_spread | Максимальное отклонение времени жизни частицы (от 0.0 до 1.0). | 0.2 | | velocity | Начальная линейная скорость частиц. | {0, 0, 0} | | acceleration | Ускорение частиц. | {0, -16, 0} | | explosion | Сила разлёта частиц при спавне. | {2, 2, 2} | | size | Размер частиц. | {0.1, 0.1, 0.1} | | spawn_shape | Форма области спавна частиц. (ball/sphere/box) | ball | | spawn_spread | Размер области спавна частиц. | {0, 0, 0} | | random_sub_uv | Размер случайного подрегиона текстуры (1 - будет использована вся текстура). | 1.0 | ## Библиотека *gfx.particles* ```lua gfx.particles.emit( -- позиция эмиттера: статические координаты или uid сущности origin: vec3 | int, -- количество частиц (-1 - бесконечно) count: int, -- таблица настроек частиц preset: table, -- дополнительная таблица настроек частиц [опционально] extension: table ) -> int ``` Создаёт эмиттер частиц, возвращая его id. ```lua gfx.particles.stop(id: int) ``` Останавливает эмиттер без возможности возобновления. Эмиттер будет удален позже автоматически. ```lua gfx.particles.is_alive(id: int) -> bool ``` Проверяет, работает ли эмиттер. Возвращает false если работа прекращена или эмиттер не существует. ```lua gfx.particles.get_origin(id: int) -> vec3 | int ``` Возвращает статическую позицию или uid сущности, к которой привязан эмиттер. Если эмиттера не существует, возвращает nil. ```lua gfx.particles.set_origin(id: int, origin: vec3 | int) ``` Устанавливает статическую позицию или uid сущности, к которой будет привязан эмиттер.