@needle-tools/engine
Version:
Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in.
67 lines (66 loc) • 2.73 kB
TypeScript
import { Color, Object3D } from "three";
import { Behaviour } from "../engine-components/Component.js";
import { EventList } from "../engine-components/EventList.js";
import { SerializationContext, TypeSerializer } from "./engine_serialization_core.js";
import { RenderTexture } from "./engine_texture.js";
import { RGBAColor } from "./js-extensions/index.js";
declare class ColorSerializer extends TypeSerializer {
constructor();
onDeserialize(data: any): Color | RGBAColor | void;
onSerialize(data: any): any | void;
}
declare type ObjectData = {
node?: number;
guid?: string;
};
declare class ObjectSerializer extends TypeSerializer {
constructor();
onSerialize(data: any, context: SerializationContext): {
node: number;
} | undefined;
onDeserialize(data: ObjectData | string | null, context: SerializationContext): Object3D<import("three").Object3DEventMap> | Behaviour | null | undefined;
}
declare class ComponentSerializer extends TypeSerializer {
constructor();
onSerialize(data: any, _context: SerializationContext): {
guid: any;
} | undefined;
onDeserialize(data: any, context: SerializationContext): any;
findObjectForGuid(guid: string, root: Object3D): any;
}
declare class EventListData {
type: string;
calls: Array<EventListCall>;
}
declare type EventListCall = {
method: string;
target: string;
argument?: any;
arguments?: Array<any>;
enabled?: boolean;
};
declare class EventListSerializer extends TypeSerializer {
constructor();
onSerialize(_data: EventList<any>, _context: SerializationContext): EventListData | undefined;
onDeserialize(data: EventListData, context: SerializationContext): EventList<any> | undefined | null;
}
export declare class RenderTextureSerializer extends TypeSerializer {
constructor();
onSerialize(_data: any, _context: SerializationContext): void;
onDeserialize(data: any, context: SerializationContext): RenderTexture | undefined;
}
export declare class UriSerializer extends TypeSerializer {
constructor();
onSerialize(_data: string, _context: SerializationContext): null;
onDeserialize(data: string, _context: SerializationContext): string | undefined;
}
export declare let colorSerializer: ColorSerializer;
export declare let objectSerializer: ObjectSerializer;
export declare let componentSerializer: ComponentSerializer;
export declare let eventListSerializer: EventListSerializer;
/** Register all builtin serializers and prototype patches.
* Must be called from {@link initEngine} so the registrations survive tree-shaking
* when the package declares `sideEffects: false`.
*/
export declare function initBuiltinSerializers(): void;
export {};