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

3.3 KiB

Particles

Particles are a table, all fields of which are optional.

Field Description Default
texture Particle texture. ""
frames Animation frames (array of texture names). Must be in a single atlas. {}
lighting Lighting. true
collision Collision detection. true
max_distance Maximum distance from the camera at which particles may spawn. 16.0
spawn_interval Particle spawn interval in seconds. 1.0
lifetime Average lifetime of particles in seconds. 5.0
lifetime_spread Maximum deviation of particle lifetime (from 0.0 to 1.0). 0.2
velocity Initial linear velocity of particles. {0, 0, 0}
acceleration Particles acceleration. {0, -16, 0}
explosion Force of particles explosion on spawn. {2, 2, 2}
size Size of particles. {0.1, 0.1, 0.1}
size_spread Maximum particle size spread over time. 0.2
angle_spread Maximum initial rotation angle spread (0 to 1) 0.0
min_angular_vel Minimum angular velocity (radians per sec). Non-negative. 0.0
max_angular_vel Maximum angular velocity (radians per sec). Non-negative. 0.0
spawn_shape Shape of particle spawn area. (ball/sphere/box) ball
spawn_spread Size of particle spawn area. {0, 0, 0}
random_sub_uv Size of random texture subregion (1 - entire texture will be used). 1.0

gfx.particles library

gfx.particles.emit(
    -- emitter position: static coordinates or entity uid
    origin: vec3 | int,
    -- particle count (-1 - infinite)
    count: int,
    -- particle settings table
    preset: table,
    -- additional particle settings table
    [optional] extension: table
) -> int

Creates a particle emitter, returning its id.

gfx.particles.stop(id: int)

Stops the emitter permanently. The emitter will be deleted automatically later.

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

Checks if the emitter is running. Returns false if it is stopped or if the emitter does not exist.

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

Returns the static position or uid of the entity the emitter is bound to.

Returns nil if the emitter does not exist.

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


Sets the static position or uid of the entity the emitter will be bound to.