mini_arcade_core.scenes.systems.builtins.particles¶
Reusable procedural particle systems for simple fire/smoke style effects.
Attributes¶
Classes¶
One simulated procedural particle. |
|
Mutable state for one emitter. |
|
Configuration for one procedural particle emitter. |
|
Reusable visual/physics preset for a particle emitter style. |
|
Spawn and simulate particles for one or more emitters. |
|
Render procedural particles using primitive circles. |
|
Compose simulation and render systems for one or more procedural emitters. |
Functions¶
Build an emitter binding from a reusable particle style profile. |
|
|
Convenience preset for a warm fire emitter. |
|
Convenience preset for a soft smoke emitter. |
|
Convenience preset for arcane glow/spark emitters. |
|
Convenience preset for bubbling potion/fume emitters. |
Module Contents¶
- mini_arcade_core.scenes.systems.builtins.particles.FIRE_COLOR_RAMP: tuple[ColorStop, Ellipsis] = ((0.0, (255, 252, 220)), (0.14, (255, 236, 150)), (0.34, (255, 182, 84)), (0.58, (255, 96, 44)),...¶
- mini_arcade_core.scenes.systems.builtins.particles.SMOKE_COLOR_RAMP: tuple[ColorStop, Ellipsis] = ((0.0, (146, 128, 124)), (0.3, (118, 104, 102)), (0.7, (82, 76, 78)), (1.0, (36, 32, 36)))¶
- mini_arcade_core.scenes.systems.builtins.particles.FIRE_ALPHA_RAMP: tuple[AlphaStop, Ellipsis] = ((0.0, 48), (0.08, 128), (0.28, 216), (0.72, 138), (1.0, 0))¶
- mini_arcade_core.scenes.systems.builtins.particles.SMOKE_ALPHA_RAMP: tuple[AlphaStop, Ellipsis] = ((0.0, 18), (0.18, 42), (0.45, 64), (0.82, 34), (1.0, 0))¶
- mini_arcade_core.scenes.systems.builtins.particles.MAGIC_COLOR_RAMP: tuple[ColorStop, Ellipsis] = ((0.0, (244, 222, 255)), (0.25, (188, 126, 255)), (0.55, (108, 72, 255)), (0.82, (56, 34, 162)),...¶
- mini_arcade_core.scenes.systems.builtins.particles.MAGIC_ALPHA_RAMP: tuple[AlphaStop, Ellipsis] = ((0.0, 34), (0.1, 96), (0.45, 188), (0.82, 92), (1.0, 0))¶
- mini_arcade_core.scenes.systems.builtins.particles.POTION_COLOR_RAMP: tuple[ColorStop, Ellipsis] = ((0.0, (198, 255, 226)), (0.28, (120, 255, 200)), (0.56, (62, 214, 166)), (0.82, (20, 98, 88)),...¶
- mini_arcade_core.scenes.systems.builtins.particles.POTION_ALPHA_RAMP: tuple[AlphaStop, Ellipsis] = ((0.0, 22), (0.12, 74), (0.38, 146), (0.84, 60), (1.0, 0))¶
- class mini_arcade_core.scenes.systems.builtins.particles.ProceduralParticle[source]¶
One simulated procedural particle.
- x: float¶
- y: float¶
- vx: float¶
- vy: float¶
- age: float¶
- lifetime: float¶
- start_radius: float¶
- end_radius: float¶
- phase: float = 0.0¶
- class mini_arcade_core.scenes.systems.builtins.particles.ProceduralParticleEmitterState[source]¶
Mutable state for one emitter.
- particles: list[ProceduralParticle] = []¶
- spawn_accumulator: float = 0.0¶
- elapsed: float = 0.0¶
- class mini_arcade_core.scenes.systems.builtins.particles.ProceduralParticleBinding[source]¶
Bases:
Generic[TCtx]Configuration for one procedural particle emitter.
- state_getter: Callable[[TCtx], ProceduralParticleEmitterState]¶
- spawn_rate: float = 96.0¶
- max_particles: int = 180¶
- spawn_spread_x: float = 18.0¶
- spawn_spread_y: float = 6.0¶
- velocity_x: tuple[float, float]¶
- velocity_y: tuple[float, float]¶
- acceleration_x: float = 0.0¶
- acceleration_y: float = -18.0¶
- turbulence: float = 20.0¶
- turbulence_frequency: float = 7.0¶
- drag: float = 0.9¶
- lifetime: tuple[float, float] = (0.45, 0.9)¶
- start_radius: tuple[float, float] = (8.0, 14.0)¶
- end_radius: tuple[float, float] = (1.0, 4.0)¶
- color_ramp: tuple[ColorStop, Ellipsis] = ((0.0, (255, 252, 220)), (0.14, (255, 236, 150)), (0.34, (255, 182, 84)), (0.58, (255, 96, 44)),...¶
- alpha_ramp: tuple[AlphaStop, Ellipsis] = ((0.0, 48), (0.08, 128), (0.28, 216), (0.72, 138), (1.0, 0))¶
- render_pass_scales: tuple[float, Ellipsis] = (1.4, 0.92, 0.56)¶
- render_pass_color_scales: tuple[float, Ellipsis] = (0.78, 1.0, 1.08)¶
- render_pass_alpha_scales: tuple[float, Ellipsis] = (0.18, 0.52, 0.95)¶
- intensity_radius_scale: float = 0.45¶
- intensity_lifetime_scale: float = 0.16¶
- intensity_velocity_scale: float = 0.28¶
- seed: int = 1¶
- class mini_arcade_core.scenes.systems.builtins.particles.ProceduralParticleProfile[source]¶
Reusable visual/physics preset for a particle emitter style.
- spawn_rate: float¶
- max_particles: int¶
- spawn_spread_x: float¶
- spawn_spread_y: float¶
- velocity_x: tuple[float, float]¶
- velocity_y: tuple[float, float]¶
- acceleration_x: float¶
- acceleration_y: float¶
- turbulence: float¶
- turbulence_frequency: float¶
- drag: float¶
- lifetime: tuple[float, float]¶
- start_radius: tuple[float, float]¶
- end_radius: tuple[float, float]¶
- color_ramp: tuple[ColorStop, Ellipsis]¶
- alpha_ramp: tuple[AlphaStop, Ellipsis]¶
- render_pass_scales: tuple[float, Ellipsis]¶
- render_pass_color_scales: tuple[float, Ellipsis]¶
- render_pass_alpha_scales: tuple[float, Ellipsis]¶
- intensity_radius_scale: float = 0.45¶
- intensity_lifetime_scale: float = 0.16¶
- intensity_velocity_scale: float = 0.28¶
- mini_arcade_core.scenes.systems.builtins.particles.FIRE_PARTICLE_PROFILE¶
- mini_arcade_core.scenes.systems.builtins.particles.SMOKE_PARTICLE_PROFILE¶
- mini_arcade_core.scenes.systems.builtins.particles.MAGIC_PARTICLE_PROFILE¶
- mini_arcade_core.scenes.systems.builtins.particles.POTION_PARTICLE_PROFILE¶
- mini_arcade_core.scenes.systems.builtins.particles.particle_binding_with_profile(*, profile: ProceduralParticleProfile, state_getter: Callable[[TCtx], ProceduralParticleEmitterState], origin_getter: Callable[[TCtx], tuple[float, float]], intensity_getter: Callable[[TCtx], float] = _default_intensity, wind_getter: Callable[[TCtx], float] = _default_wind, viewport_getter: Callable[[TCtx], tuple[float, float]] = _default_viewport, enabled_when: Callable[[TCtx], bool] = _default_enabled_when, seed: int = 1) ProceduralParticleBinding[TCtx][source]¶
Build an emitter binding from a reusable particle style profile.
- mini_arcade_core.scenes.systems.builtins.particles.fire_particle_binding(*, state_getter: Callable[[TCtx], ProceduralParticleEmitterState], origin_getter: Callable[[TCtx], tuple[float, float]], intensity_getter: Callable[[TCtx], float] = _default_intensity, wind_getter: Callable[[TCtx], float] = _default_wind, viewport_getter: Callable[[TCtx], tuple[float, float]] = _default_viewport, seed: int = 1) ProceduralParticleBinding[TCtx][source]¶
Convenience preset for a warm fire emitter.
- mini_arcade_core.scenes.systems.builtins.particles.smoke_particle_binding(*, state_getter: Callable[[TCtx], ProceduralParticleEmitterState], origin_getter: Callable[[TCtx], tuple[float, float]], intensity_getter: Callable[[TCtx], float] = _default_intensity, wind_getter: Callable[[TCtx], float] = _default_wind, viewport_getter: Callable[[TCtx], tuple[float, float]] = _default_viewport, seed: int = 2) ProceduralParticleBinding[TCtx][source]¶
Convenience preset for a soft smoke emitter.
- mini_arcade_core.scenes.systems.builtins.particles.magic_particle_binding(*, state_getter: Callable[[TCtx], ProceduralParticleEmitterState], origin_getter: Callable[[TCtx], tuple[float, float]], intensity_getter: Callable[[TCtx], float] = _default_intensity, wind_getter: Callable[[TCtx], float] = _default_wind, viewport_getter: Callable[[TCtx], tuple[float, float]] = _default_viewport, enabled_when: Callable[[TCtx], bool] = _default_enabled_when, seed: int = 3) ProceduralParticleBinding[TCtx][source]¶
Convenience preset for arcane glow/spark emitters.
- mini_arcade_core.scenes.systems.builtins.particles.potion_particle_binding(*, state_getter: Callable[[TCtx], ProceduralParticleEmitterState], origin_getter: Callable[[TCtx], tuple[float, float]], intensity_getter: Callable[[TCtx], float] = _default_intensity, wind_getter: Callable[[TCtx], float] = _default_wind, viewport_getter: Callable[[TCtx], tuple[float, float]] = _default_viewport, enabled_when: Callable[[TCtx], bool] = _default_enabled_when, seed: int = 4) ProceduralParticleBinding[TCtx][source]¶
Convenience preset for bubbling potion/fume emitters.
- class mini_arcade_core.scenes.systems.builtins.particles.ProceduralParticleSimulationSystem[source]¶
Bases:
Generic[TCtx]Spawn and simulate particles for one or more emitters.
- name: str = 'procedural_particle_simulation'¶
- phase: int¶
- order: int = 32¶
- bindings: tuple[ProceduralParticleBinding[TCtx], Ellipsis] = ()¶
- class mini_arcade_core.scenes.systems.builtins.particles.ProceduralParticleRenderSystem[source]¶
Bases:
Generic[TCtx]Render procedural particles using primitive circles.
- name: str = 'procedural_particle_render'¶
- phase: int¶
- order: int = 105¶
- bindings: tuple[ProceduralParticleBinding[TCtx], Ellipsis] = ()¶
- class mini_arcade_core.scenes.systems.builtins.particles.ProceduralParticleBundle[source]¶
Bases:
mini_arcade_core.scenes.systems.SystemBundle[TCtx]Compose simulation and render systems for one or more procedural emitters.
- bindings: tuple[ProceduralParticleBinding[TCtx], Ellipsis] = ()¶
- simulation_name: str = 'procedural_particle_simulation'¶
- simulation_phase: int¶
- simulation_order: int = 32¶
- render_name: str = 'procedural_particle_render'¶
- render_phase: int¶
- render_order: int = 105¶