Skip to content

Particles

MaxBogomol edited this page Nov 22, 2024 · 12 revisions

Particles

Частицы в больших объёмах вызывают сильную нагрузку из-за огромного количества полигонов и логики каждого отдельной частицы.
Частицы являются лишь дополнением, а не заменой графики.

ParticleBuilder

ParticleBuilder - класс для просто вызова частиц в Fluffy Fur.

Methods

setRenderType(RenderType) - устанавливает тип рендера.

setParticleRenderType(ParticleRenderType) - устанавливает тип рендера частицы.
Используется для ванильных типов рендера.
Например: setParticleRenderType(ParticleRenderType.PARTICLE_SHEET_OPAQUE)

setBehavior(ParticleBehavior) - устанавливает поведение.

setColorData(ColorParticleData) - устанавливает дату цвета.

setTransparencyData(GenericParticleData) - устанавливает дату прозрачности.

setScaleData(GenericParticleData) - устанавливает дату размера.

setSpinData(SpinParticleData) - устанавливает дату поворота.

setLightData(LightParticleData) - устанавливает дату света.

setSpriteData(SpriteParticleData) - устанавливает дату спрайта.

addTickActor(Consumer<GenericParticle>), addSpawnActor(Consumer<GenericParticle>), addRenderActor(Consumer<GenericParticle>) - вызывает Consumer каждый раз при тике, спавне и тике рендера.
Используется для более гибкой настройки логики частицы.
Например:

final Consumer<GenericParticle> target = p -> {
    //p <-- particle
    p.setSpeed(p.getSpeed().add(0, 0.1f, 0));
};
particleBuilder.addTickActor(target);

clearActors(), clearTickActor(), clearSpawnActors(), clearRenderActors() - очищает акторы.

setDiscardFunction(GenericParticleOptions.DiscardFunctionType) - устанавливает функцию сброса (NONE, INVISIBLE, ENDING_CURVE_INVISIBLE)

setLifetime(int) - устанавливает время жизни.

setLifetime(int, int) - устанавливает время жизни плюс случайное значение от нуля до второго значения.

setGravity(int) - устанавливает гравитацию.

setGravity(int, int) - устанавливает гравитацию плюс случайное значение от нуля до второго значения.

setFriction(int) - устанавливает трение.
Работает по логике каждый тик умножает скорость на значение трения.
То есть, при значениях от 0 до 1, частица будет замедлятся, а при значениях больше 1 ускоряться.

setFriction(int, int) - устанавливает трение плюс случайное значение от нуля до второго значения.

enableCull(), disableCull(), setShouldCull(boolean) - устанавливает оптимизацию рендера.
Частицы не будут отображается, если камера не будет направлена в сторону частицы, но из-за этого, частица может отображаться некорректно при поворотах камеры. По умолчанию отключено.

enableRenderTraits(), disableRenderTraits(), setShouldRenderTraits(boolean) - устанавливает обновление параметров при рендер тике.
Используется для более плавного отображения.
По умолчанию включено.

enablePhysics(), disablePhysics(), setHasPhysics(boolean) - устанавливает физику.
При отключенной физике игнорирует коллизию с блоками.
По умолчанию включено.

randomVelocity(double), randomVelocity(double, double), randomVelocity(double, double, double) -

flatRandomVelocity(double, double, double) -

addVelocity(double, double, double) -

setVelocity(double, double, double) -

randomOffset(double), randomOffset(double, double), randomOffset(double, double, double) -

flatRandomOffset(double, double, double) -

enableForce(), enableForce(), enableForce(boolean) -

setDistance(double) -

enableDistanceSpawn(), disableDistanceSpawn(), setDistanceSpawn(boolean) -

addAdditionalBuilder(ParticleBuilder) -

clearAdditionalBuilders() -

spawn(Level, Vec3), spawn(Level, double, double, double) -

repeat(Level, Vec3, int), repeat(Level, double, double, double, int) -

repeat(Level, Vec3, int, float), repeat(Level, double, double, double, int, float) -

create(ParticleType<?>), create(RegistryObject<?>) -

create(GenericParticleOptions) -

Documentation - English:
The Fluffy Wiki

Документация - Русский:
The Fluffy Wiki

Clone this wiki locally