Files
feuerwerk/tools/e2e/index.mjs
T
root 0f9e1611d1
game-maker / suite (push) Failing after 4m22s
A particle is a function of its age, not a thing that is stepped (#73)
The asset type `particles` is placeable and carries a graph at the same time —
`behavior` was the blueprint. Because a continuous emitter gives birth to particle n
at time n/rate, the whole field is a function of the clock rather than of the frames:
no ring-buffer bookkeeping, exact time jumps, reproducibility as a measurable property.

compile.ts follows compileShader's frame but emits JS closures into a Float64Array
instead of GLSL, and without eval; a node with two consumers is evaluated once.
Drawing is one Pixi ParticleContainer per source, so one draw call.

Collision, wind and braking in flight are out for good — that is the price of the
formula model, not an omission.

The tab count goes from nine to ten, which is exactly the case #84 was built for one
day earlier: at 1280 px the row no longer holds every tab, so guard 14b now asks for
hidden.length > 0 instead of === 0.
2026-09-14 05:44:25 +02:00

71 lines
2.1 KiB
JavaScript

/**
* The e2e steps in the order they run. Each step is `async (t) => {}` over the harness
* toolbox; later steps rely on the scene state earlier ones leave behind (names given in
* the parenting step, the container created in the container step, …).
*/
import { hierarchy } from './01-hierarchy.mjs';
import { inspector } from './02-inspector.mjs';
import { play } from './03-play.mjs';
import { assets } from './04-assets.mjs';
import { drawing } from './05-drawing.mjs';
import { graph } from './06-graph.mjs';
import { parenting } from './07-parenting.mjs';
import { colliders } from './08-colliders.mjs';
import { containers } from './09-containers.mjs';
import { textAndEnabled } from './10-text-and-enabled.mjs';
import { menus } from './11-menus.mjs';
import { textures } from './12-textures.mjs';
import { frames } from './13-frames.mjs';
import { overflow } from './14-overflow.mjs';
import { aspect } from './15-aspect.mjs';
import { containerTab } from './16-container.mjs';
import { editorRun } from './17-editor-run.mjs';
import { pause } from './18-pause.mjs';
import { nestedBehavior } from './19-nested-behavior.mjs';
import { keyRepeat } from './20-key-repeat.mjs';
import { listTab } from './21-list.mjs';
import { structVariable } from './22-struct.mjs';
import { variableNodes } from './23-variable-nodes.mjs';
import { propertyNodes } from './24-property-nodes.mjs';
import { animation } from './25-animation.mjs';
import { stateMachine } from './26-state-machine.mjs';
import { consolePanel } from './27-console.mjs';
import { shader } from './28-shader.mjs';
import { transform } from './29-transform.mjs';
import { font } from './30-font.mjs';
import { particles } from './31-particles.mjs';
export const STEPS = [
hierarchy,
inspector,
play,
assets,
drawing,
graph,
parenting,
colliders,
containers,
textAndEnabled,
menus,
textures,
frames,
overflow,
aspect,
containerTab,
editorRun,
pause,
nestedBehavior,
keyRepeat,
listTab,
structVariable,
variableNodes,
propertyNodes,
animation,
stateMachine,
consolePanel,
shader,
transform,
font,
particles,
];