@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 +136 -9
- package/LiteEngine.js +606 -10
- package/README.md +359 -21
- package/llms.txt +37 -36
- package/package.json +56 -15
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-
|
|
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-
|
|
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;
|