VoxelEngine/doc/ru/particles.md
2024-11-06 20:49:51 +03:00

67 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Частицы
Частицы представляют собой таблицу, все поля которой опциональны.
| Поле | Описание | По-умолчанию |
| --------------- | ---------------------------------------------------------------------------- | --------------- |
| 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 сущности, к которой будет привязан эмиттер.