UNPKG

@hiddentao/clockwork-engine

Version:

A TypeScript/PIXI.js game engine for deterministic, replayable games with built-in rendering

132 lines 5.19 kB
/** * PIXI Rendering Layer * * PIXI.js-based rendering implementation with viewport support. */ import type { RenderingLayer, ViewportOptions } from "../RenderingLayer"; import type { BlendMode, Color, NodeId, SpritesheetId, TextureId } from "../types"; import { TextureFiltering } from "../types"; export declare class PixiRenderingLayer implements RenderingLayer { private app; private viewport; private canvas; private options; private viewportOptions; private nodes; private nextNodeId; private nextTextureId; private nextSpritesheetId; private textures; private spritesheets; private _needsRepaint; private initialized; private tickCallbackManager; private tickerCallbackAdded; private animationCompleteCallbacks; constructor(canvas: HTMLCanvasElement, options: ViewportOptions); init(): Promise<void>; get needsRepaint(): boolean; destroy(): void; createNode(): NodeId; destroyNode(id: NodeId): void; hasNode(id: NodeId): boolean; addChild(parentId: NodeId, childId: NodeId): void; removeChild(parentId: NodeId, childId: NodeId): void; getChildren(id: NodeId): NodeId[]; getParent(id: NodeId): NodeId | null; setPosition(id: NodeId, x: number, y: number): void; getPosition(id: NodeId): { x: number; y: number; }; setRotation(id: NodeId, radians: number): void; getRotation(id: NodeId): number; setScale(id: NodeId, scaleX: number, scaleY: number): void; getScale(id: NodeId): { x: number; y: number; }; setAnchor(id: NodeId, anchorX: number, anchorY: number): void; getAnchor(id: NodeId): { x: number; y: number; }; setAlpha(id: NodeId, alpha: number): void; getAlpha(id: NodeId): number; setVisible(id: NodeId, visible: boolean): void; getVisible(id: NodeId): boolean; setZIndex(id: NodeId, z: number): void; getZIndex(id: NodeId): number; setSize(id: NodeId, width: number, height: number): void; getSize(id: NodeId): { width: number; height: number; }; setTint(id: NodeId, color: Color): void; getTint(id: NodeId): Color | null; setBlendMode(id: NodeId, mode: BlendMode): void; getBlendMode(id: NodeId): BlendMode; setTextureFiltering(id: NodeId, filtering: TextureFiltering): void; getTextureFiltering(id: NodeId): TextureFiltering; getBounds(id: NodeId): { x: number; y: number; width: number; height: number; }; loadTexture(url: string): Promise<TextureId>; loadSpritesheet(imageUrl: string, jsonData: any): Promise<SpritesheetId>; setSprite(id: NodeId, textureId: TextureId): void; setSpriteFromSpritesheet(id: NodeId, _spritesheetId: string, _tileX: number, _tileY: number): void; setAnimatedSprite(id: NodeId, textureIds: TextureId[], ticksPerFrame: number): void; playAnimation(id: NodeId, loop: boolean): void; setAnimationCompleteCallback(id: NodeId, callback: ((id: NodeId) => void) | null): void; stopAnimation(id: NodeId): void; isAnimationPlaying(id: NodeId): boolean; getAnimationData(id: NodeId): { textures: TextureId[]; ticksPerFrame: number; loop: boolean; } | null; drawRectangle(id: NodeId, x: number, y: number, width: number, height: number, fill?: Color, stroke?: Color, strokeWidth?: number): void; drawCircle(id: NodeId, x: number, y: number, radius: number, fill?: Color, stroke?: Color, strokeWidth?: number): void; drawPolygon(id: NodeId, points: number[], fill?: Color, stroke?: Color, strokeWidth?: number): void; drawRoundRect(id: NodeId, x: number, y: number, width: number, height: number, radius: number, fill?: Color, stroke?: Color, strokeWidth?: number): void; drawLine(id: NodeId, x1: number, y1: number, x2: number, y2: number, color: Color, width?: number): void; drawPolyline(id: NodeId, points: number[], color: Color, width?: number): void; clearGraphics(id: NodeId): void; getGraphics(id: NodeId): Array<{ type: string; data: any; }>; getSpriteTexture(id: NodeId): TextureId | null; getViewportZoom(): number; resize(width: number, height: number): void; render(): void; getDevicePixelRatio(): number; getTexture(spritesheet: SpritesheetId, frameName: string): TextureId | null; setViewport(_id: NodeId, options: ViewportOptions): void; getViewportPosition(_id: NodeId): { x: number; y: number; }; setViewportPosition(_id: NodeId, x: number, y: number): void; setViewportZoom(_id: NodeId, zoom: number): void; worldToScreen(_id: NodeId, x: number, y: number): { x: number; y: number; }; screenToWorld(_id: NodeId, x: number, y: number): { x: number; y: number; }; onTick(callback: (deltaTicks: number) => void): void; setTickerSpeed(speed: number): void; getFPS(): number; private clearCurrentVisual; private ensureGraphics; private redrawGraphics; private createErrorTexture; private toPixiBlendMode; } //# sourceMappingURL=PixiRenderingLayer.d.ts.map