UNPKG

@javelin/net

Version:

Networking protocol and utilities for Javelin ECS.

71 lines 1.99 kB
import { Component, Entity, Patch } from "@javelin/ecs"; import { ByteView, ModelEnhanced } from "@javelin/pack"; export declare const $buffer: unique symbol; export declare type MessageOp = { data: unknown[]; view: (ByteView | typeof $buffer)[]; byteLength: number; }; export declare function createOp(): MessageOp; export declare function resetOp(op: MessageOp): MessageOp; export declare const messageOpPool: import("@javelin/core").StackPool<MessageOp>; export declare function insert(op: MessageOp, data: ArrayBuffer): number; export declare function insert(op: MessageOp, data: unknown, view: ByteView): number; export declare function modify(op: MessageOp, index: number, data: unknown): void; /** * Create a snapshot message op. * @example * [ * entity: uint32, * count: uint8, * components: [schemaId: uint8, encoded: *][], * ] * @param entity * @param components * @returns MessageOp */ export declare function snapshot(model: ModelEnhanced, entity: Entity, components: Component[]): MessageOp; /** * Create a patch message op. * [entity, schemaId, [field, traverse, [operation, ...args]*]*] * @param model * @param entity * @param schemaId * @param patch * @returns MessageOp */ export declare function patch(model: ModelEnhanced, entity: Entity, patch: Patch): MessageOp; /** * Create a detach message op. * @example * [ * entity: uint32, * count: uint8, * schemaIds: uint8[], * ] * @param entity * @param schemaIds * @returns MessageOp */ export declare function detach(entity: Entity, schemaIds: number[]): MessageOp; /** * Create a destroy message op. * @example * [ * entity: uint32, * ] * @param entity * @returns MessageOp */ export declare function destroy(entity: Entity): MessageOp; /** * Create a model message op. * @example * [ * model: *, * ] * @param model * @returns MessageOp */ export declare function model(model: ModelEnhanced): MessageOp; //# sourceMappingURL=message_op.d.ts.map