acron.particles2d

2D particle simulation: pooled textured cards stepped on the CPU.

Simulates plain EmitterSpec data – emission shape, direction/spread, velocity range, gravity, angle and scale ranges with their Curve s, the colour Gradient and the hue variation – as one pooled card per particle (ParticleSystem2D). The specs are data; the Godot emitter-node reader that produces them lives in acron.gdformat.particles2d.

The simulation follows Godot’s CPUParticles2D::_particles_process for the properties real emitters set, including its exact sphere-emission sampling and its hue rotation (applied to the particle’s COLOUR, not the texture – so a colour scale reproduces it). Deliberately NOT modelled, because no shipped emitter uses it: explosiveness / randomness / lifetime_randomness (all particles of a burst are emitted at once), radial/tangential/linear acceleration, damping, orbit_velocity, attractors, and sub-emitters. A spec that sets any of them still reads correctly – it just simulates as if the value were 0.

Curve(points)

Godot Curve: points [(offset, value), left_tan, right_tan, ...].

EmitterSpec(**kw)

One emitter node's parameters, as plain numbers.

Gradient(colors[, offsets])

Godot Gradient: a colour ramp sampled over 0..1.

ParticleSystem2D(parent[, rng, max_live])

Pooled CPU particles under one NodePath, in Godot pixel coordinates.