@zakkster/lite-tools 1.0.7 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LiteEngine.d.ts CHANGED
@@ -85,11 +85,49 @@ from
85
85
 
86
86
  // Viewport, Ticker, FSM, FPS, Pointer, Assets, Audio
87
87
  export {Viewport} from 'lite-viewport';
88
- export {Ticker} from 'lite-ticker';
89
- export {FSM} from 'lite-fsm';
88
+ export {Ticker} from '@zakkster/lite-ticker';
89
+ export {FSM} from 'lite-states';
90
90
  export {FPSMeter} from 'lite-fps-meter';
91
91
  export {PointerTracker} from 'lite-pointer-tracker';
92
92
 
93
+ // ═══════════════════════════════════════════════════════════
94
+ // v2.0 — NEW BARREL RE-EXPORTS
95
+ // ═══════════════════════════════════════════════════════════
96
+
97
+ // Animation primitives
98
+ export { easeInQuad, easeOutQuad, easeInOutQuad, easeInCubic, easeOutCubic, easeInOutCubic, easeInQuart, easeOutQuart, easeInOutQuart, easeInQuint, easeOutQuint, easeInOutQuint, easeInSine, easeOutSine, easeInOutSine, easeInExpo, easeOutExpo, easeInOutExpo, easeInCirc, easeOutCirc, easeInOutCirc, easeInBack, easeOutBack, easeInOutBack, easeInElastic, easeOutElastic, easeInOutElastic, easeInBounce, easeOutBounce, easeInOutBounce, linear } from '@zakkster/lite-ease';
99
+ export { Tween } from '@zakkster/lite-tween';
100
+ export { SpringStandalone, SpringPool } from '@zakkster/lite-spring';
101
+ export { Gradient } from '@zakkster/lite-gradient';
102
+ export { Noise } from '@zakkster/lite-noise';
103
+ export { Timeline } from '@zakkster/lite-timeline';
104
+
105
+ // Interaction + utility
106
+ export { GestureRecognizer } from '@zakkster/lite-gesture';
107
+ export { confetti, createConfetti } from '@zakkster/lite-confetti';
108
+ export { createId, createIdGenerator } from '@zakkster/lite-id';
109
+ export { Vec2 } from '@zakkster/lite-vec';
110
+ export { Seek, Flee, Wander, Arrive, Pursuit, Evade, PathFollow, Separation, Alignment, Cohesion, Flock } from '@zakkster/lite-steer';
111
+
112
+ // Game layer
113
+ export { BmFont } from '@zakkster/lite-bmfont';
114
+ export { InputPoller } from '@zakkster/lite-gamepad';
115
+ export { Camera } from '@zakkster/lite-camera';
116
+ export { SpatialHash } from '@zakkster/lite-spatial';
117
+ export { testPolygonPolygon, translatePoly, rotatePoly } from '@zakkster/lite-sat';
118
+ export { PathFinder } from '@zakkster/lite-path';
119
+ export { ShadowCaster } from '@zakkster/lite-shadow';
120
+ export { WFC } from '@zakkster/lite-wfc';
121
+ export { AudioPool } from '@zakkster/lite-audio-pool';
122
+
123
+ // VFX engines
124
+ export { FireworksEngine } from '@zakkster/lite-fireworks';
125
+ export { SparkEngine } from '@zakkster/lite-sparks';
126
+ export { RainEngine } from '@zakkster/lite-rain';
127
+ export { SnowEngine } from '@zakkster/lite-snow';
128
+ export { EmberEngine } from '@zakkster/lite-embers';
129
+ export { SmokeEngine } from '@zakkster/lite-smoke';
130
+
93
131
 
94
132
  // ═══════════════════════════════════════════════════════════
95
133
  // RECIPE TYPES
@@ -100,17 +138,24 @@ import type {FXSystem} from '@zakkster/lite-fx';
100
138
  import type {GenEngine, FlowField, SimplexNoise} from '@zakkster/lite-gen';
101
139
  import type {Magnetic, ColorShift, ConfettiBurst, Spring} from '@zakkster/lite-ui';
102
140
  import type {ThemePalette} from '@zakkster/lite-theme-gen';
103
- import type
104
-
105
- Random
106
- from
107
- '@zakkster/lite-random';
141
+ import type {Random} from '@zakkster/lite-random';
108
142
  import type {Emitter} from '@zakkster/lite-particles';
109
- import type {Ticker} from 'lite-ticker';
143
+ import type {Ticker} from '@zakkster/lite-ticker';
110
144
  import type {Viewport} from 'lite-viewport';
111
- import type {FSM} from 'lite-fsm';
145
+ import type {FSM} from 'lite-states';
112
146
  import type {FPSMeter} from 'lite-fps-meter';
113
147
  import type {PointerTracker} from 'lite-pointer-tracker';
148
+ import type {BmFont} from '@zakkster/lite-bmfont';
149
+ import type {Camera} from '@zakkster/lite-camera';
150
+ import type {SpatialHash} from '@zakkster/lite-spatial';
151
+ import type {EmberEngine} from '@zakkster/lite-embers';
152
+ import type {SmokeEngine} from '@zakkster/lite-smoke';
153
+ import type {RainEngine} from '@zakkster/lite-rain';
154
+ import type {SnowEngine} from '@zakkster/lite-snow';
155
+ import type {SparkEngine} from '@zakkster/lite-sparks';
156
+ import type {FireworksEngine} from '@zakkster/lite-fireworks';
157
+ import type {GestureRecognizer} from '@zakkster/lite-gesture';
158
+ import type {Timeline} from '@zakkster/lite-timeline';
114
159
 
115
160
  /** All recipes return at least a destroy() method. */
116
161
  interface Destroyable {
@@ -257,6 +302,88 @@ export declare const Recipes: {
257
302
  replaySystem(ctx: CanvasRenderingContext2D, options?: { maxParticles?: number; seed?: number }): ReplaySystemResult;
258
303
  themePlayground(options?: { initialBrand?: OklchColor; mode?: 'light' | 'dark'; prefix?: string; onThemeChange?: (palette: ThemePalette, css: string) => void }): ThemePlaygroundResult;
259
304
  gameCanvas(canvas: HTMLCanvasElement, options?: { fps?: boolean; fpsPosition?: string; seed?: number; maxParticles?: number; states?: Record<string, string[]> }): GameCanvasResult;
305
+
306
+ // v2.0 recipes
307
+ retroArcadeText(ctx: CanvasRenderingContext2D, fontImage: HTMLImageElement, fontData: object, options?: { seed?: number; maxNumbers?: number }): RetroArcadeTextResult;
308
+ proceduralWorld(canvas: HTMLCanvasElement, options?: { seed?: number; cellSize?: number; scale?: number }): ProceduralWorldResult;
309
+ dungeonGenerator(options?: { width?: number; height?: number; seed?: number }): DungeonGeneratorResult;
310
+ campfireScene(canvas: HTMLCanvasElement, options?: { fireX?: number; fireY?: number; fireW?: number; fireH?: number; maxEmbers?: number; maxSmoke?: number; dpr?: number }): CampfireSceneResult;
311
+ weatherSystem(canvas: HTMLCanvasElement, options?: { mode?: 'rain' | 'snow'; maxParticles?: number }): WeatherSystemResult;
312
+ boidsSimulation(canvas: HTMLCanvasElement, options?: { count?: number; seed?: number }): BoidsSimulationResult;
313
+ gestureCarousel(container: HTMLElement | string, slides: (HTMLElement | string)[], options?: { stiffness?: number; damping?: number }): GestureCarouselResult;
314
+ timelineShowcase(elements: string | NodeListOf<Element>, overlayCanvas?: HTMLCanvasElement, options?: { brandColor?: OklchColor }): TimelineShowcaseResult;
315
+ sparkImpact(canvas: HTMLCanvasElement, options?: { maxSparks?: number; maxFireworks?: number; shakeIntensity?: number }): SparkImpactResult;
316
+ audioReactiveVFX(canvas: HTMLCanvasElement, options?: { maxEmbers?: number }): AudioReactiveVFXResult;
260
317
  };
261
318
 
319
+ // ═══════════════════════════════════════════════════════════
320
+ // v2.0 RECIPE RESULT TYPES
321
+ // ═══════════════════════════════════════════════════════════
322
+
323
+ export interface RetroArcadeTextResult extends Destroyable {
324
+ addDamage(x: number, y: number, value: number): void;
325
+ update(dt: number): void;
326
+ getScore(): number;
327
+ resetScore(): void;
328
+ }
329
+
330
+ export interface ProceduralWorldResult extends Destroyable {
331
+ cam: Camera;
332
+ render(dt: number): void;
333
+ moveTo(x: number, y: number): void;
334
+ reseed(s?: number): void;
335
+ }
336
+
337
+ export interface DungeonGeneratorResult extends Destroyable {
338
+ grid: Uint8Array;
339
+ width: number;
340
+ height: number;
341
+ spatial: SpatialHash;
342
+ isWalkable(x: number, y: number): boolean;
343
+ findPath(sx: number, sy: number, ex: number, ey: number): Array<{ x: number; y: number }> | null;
344
+ renderToCanvas(ctx: CanvasRenderingContext2D, tileSize?: number): void;
345
+ }
346
+
347
+ export interface CampfireSceneResult extends Destroyable {
348
+ embers: EmberEngine;
349
+ smoke: SmokeEngine;
350
+ update(dt: number, w: number, h: number): void;
351
+ }
352
+
353
+ export interface WeatherSystemResult extends Destroyable {
354
+ update(dt: number, w: number, h: number): void;
355
+ setWind(v: number): void;
356
+ setMode(m: 'rain' | 'snow'): void;
357
+ getMode(): string;
358
+ }
359
+
360
+ export interface BoidsSimulationResult extends Destroyable {
361
+ agents: Array<{ id: number; x: number; y: number; vx: number; vy: number; hue: number }>;
362
+ update(dt: number): void;
363
+ }
364
+
365
+ export interface GestureCarouselResult extends Destroyable {
366
+ goTo(index: number): void;
367
+ getCurrentIndex(): number;
368
+ }
369
+
370
+ export interface TimelineShowcaseResult extends Destroyable {
371
+ timeline: Timeline;
372
+ play(): void;
373
+ }
374
+
375
+ export interface SparkImpactResult extends Destroyable {
376
+ sparks: SparkEngine;
377
+ fireworks: FireworksEngine;
378
+ cam: Camera;
379
+ explodeAt(x: number, y: number): void;
380
+ update(dt: number): void;
381
+ }
382
+
383
+ export interface AudioReactiveVFXResult extends Destroyable {
384
+ embers: EmberEngine;
385
+ connectAudio(sourceNode: AudioNode): void;
386
+ update(dt: number, w: number, h: number): void;
387
+ }
388
+
262
389
  export default Recipes;