[CPACK] Particle Emitters

Started by Grabz, December 07, 2021, 03:12:08 AM

Previous topic - Next topic

Grabz


How to play

Download

Github

Description
This CPACK adds special emitters called Particle Emitters which emit particles instead of Creeper.

Particle Emitter
A particle emitter will emit particles. Here's all the options you can change on an emitter and what they do.
To change these, click a placed emitter, then click the Settings button next to Emitter.4rpl.


  • START_DELAY - The time, in frames, until this emitter starts working. If this is set, a little timer will pop up on top of the emitter, to indicate how long until it starts emitting.
  • LAUNCH_INTERVAL - The interval, in frames, between particle emissions.
  • PAYLOAD - The amount of creeper that a particle will emit upon detonation. This has to be a positive value for C emitters and a negative value for AC emitters.
  • COUNT - The amount of particles that will be created per particle emission. Particles will roughly be emitted in the same direction.
  • HEALTH - The amount of health the particles will have. This only matters while a particle is still vulnerable to sniper fire. Snipers deal 0.6 damage each.
  • CRIMSON_PER_FRAME - The amount of crimson a swimming particle will generate beneath itself every frame. This also turns particles into a red color.
  • MAX_PARTICLES - The maximum amount of particles that can be alive from this emitter at any given time. The emitter will cease to emit if this max is reached, and will emit again if one or more of its particles dies. Set to 0 for no limit.
  • LIFETIME - The length of time in frames that each particle has until it forcefully explodes. Particles can die before this runs out, but they can never live longer than this. The closer a particle is to reaching their lifetime, the bigger they get visually.
  • LIFETIME_RANDOM_FUZZ - This value can be used to make each particle's lifetime a bit more random. If lifetime is set to 1000, and fuzz is set to 100, each particle will have a lifetime between 900 and 1100.
  • IS_FLIP_EMITTER - Set this to 1 to make this a flip emitter. Only creeper emitters can be flip emitters.
  • FRAMES_VULNERABLE - How many frames at minimum the particle will be vulnerable to Sniper fire. Particles normally stop being vulnerable when they hit an obstacle, this makes sure they always stay vulnerable for some amount of time.
  • VULNERABLE_UNTIL_IMPACT - 1 or 0. Whether or not the particle will be vulnerable to Sniper fire until it impacts with creeper or terrain.
  • CREEPER_POP_THRESHOLD - The minimum amount of creeper that must be on the cell for a particle to auto pop. By default particles only pop when there's no creeper.
  • TERRAIN_REFLECTION_SCALE - A multiplier that determines how much of a particle's velocity is lost upon hitting the ground. 1 means no speed is lost, smaller values mean speed loss, bigger values mean speed gain.
  • SPAWN_HORIZ_FORCE_MULT - The maximum horizontal velocity multiplier a particle will be launched with. 0 will launch a particle straight up in the air. Higher values will shoot particles with greater horizontal force.
  • SPAWN_VERT_FORCE_MULT - The vertical velocity multiplier a particle will be launched with. 0 will not launch a particle at all.
  • GRAVITY_X/Y/Z - The gravity that will affect this particle. By default there is no gravity on X and Z axis, and a value of -0.018 on the Y axis.
  • LEVITATE_HEIGHT - Emitters will levitate above terrain and creeper. This is an additional height emitters will levitate at. Generally you want emitters to levitate so that particles don't spawn submerged.

Global Settings
There is a selection of global settings that can be altered that affect the behavior of all particles.
To change these, go to CPACK Manager -> Global Control -> click on GlobalManager.4rpl.


  • MAX_PARTICLES - Global maximum particles that can exist in the level at any given time. Emitters will cease to emit when this limit is reached. I don't recommend going higher than 200 as it's a decent tradeoff between performance and fun.
  • FIELD_FORCE_STRENGTH - The strength with which fields affect particles. Far as I know, this only affects the potency of the Singularity orbital on particles, at least in the base game. Custom units can create fields and those will affect particles as well. Set to 0 to disable fields affecting particles
  • FLOW_FORCE_STRENGTH - The strength with which creeper flow/waves affect particles. Lower values will make larger creeper movements affect particles less. Higher values will make smaller creeper movements affect particles more. Set to 0 to disable flow affecting particles.
  • FLOW_FORCE_CAP - The maximum strength that creeper flow can exert.
  • CREEPER_FRICTION - This is a multiplier that is applied to every particle's horizontal velocity every frame they are floating on top of creeper. This mainly slows down a particle's initial velocity as it impacts with a body of creeper for the first time.
  • BUOYANCY - This is a vertical velocity value that is linearly added to every particle's vertical velocity while they are submerged in creeper. This makes particles go up while in creeper
  • MAX_BUOYANCY - This is the highest upwards velocity a particle can reach while submerged.

Mverse
This CPACK is fully Mverse compatible.

Attributions
Made by Grabz

Maps
Please tag maps using this CPACK with the PARTICLES tag
#2652: Particle Emitters III By: Grabz (Version 1.4)
#2648: Particle Emitters II By: Grabz (Version 1.2)
#2642: Particle Emitters I By: Grabz (Version 1.1) (Broken in Mverse)
#2638: Particle Emitters By: Grabz (Version 1.0)

Videos
For quicker response, reply to me directly at Grabz#4707 on Discord. Find me on the KC server: https://discord.gg/knucklecracker

Grabz

#1
Changelog


Download
Latest version: Version 1.4
Click attachment below \/
For quicker response, reply to me directly at Grabz#4707 on Discord. Find me on the KC server: https://discord.gg/knucklecracker