VoxelEngine/doc/ru/particles.md
2024-12-24 05:25:40 +03:00

4.7 KiB
Raw Blame History

Частицы

Частицы представляют собой таблицу, все поля которой опциональны.

Поле Описание По-умолчанию
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}
size_spread Максимальное отклонение времени размера частиц. 0.2
angle_spread Максимальное отклонение начального угла поворота (от 0 до 1) 0.0
min_angular_vel Минимальная угловая скорость (радианы в сек.). Неотрицательное. 0.0
max_angular_vel Максимальная угловая скорость (радианы в сек.). Неотрицательное. 0.0
spawn_shape Форма области спавна частиц. (ball/sphere/box) ball
spawn_spread Размер области спавна частиц. {0, 0, 0}
random_sub_uv Размер случайного подрегиона текстуры (1 - будет использована вся текстура). 1.0

Библиотека gfx.particles

gfx.particles.emit(
    -- позиция эмиттера: статические координаты или uid сущности
    origin: vec3 | int,
    -- количество частиц (-1 - бесконечно)
    count: int,
    -- таблица настроек частиц
    preset: table,
    -- дополнительная таблица настроек частиц
    [опционально] extension: table
) -> int

Создаёт эмиттер частиц, возвращая его id.

gfx.particles.stop(id: int)

Останавливает эмиттер без возможности возобновления. Эмиттер будет удален позже автоматически.

gfx.particles.is_alive(id: int) -> bool

Проверяет, работает ли эмиттер. Возвращает false если работа прекращена или эмиттер не существует.

gfx.particles.get_origin(id: int) -> vec3 | int

Возвращает статическую позицию или uid сущности, к которой привязан эмиттер. Если эмиттера не существует, возвращает nil.

gfx.particles.set_origin(id: int, origin: vec3 | int)

Устанавливает статическую позицию или uid сущности, к которой будет привязан эмиттер.