UNPKG

@gwigz/homunculus-core

Version:

A third-party framework for interacting with Linden Lab's virtual world "Second Life"

122 lines (121 loc) 2.67 kB
import type { Client } from "../client"; import { Color4, type Quaternion, Vector3 } from "../network"; export interface EntityOptions { id: number; key: string; parent?: number; state?: number; owner?: string; type?: number; flags?: number; position?: Vector3; velocity?: Vector3; angularVelocity?: Vector3; acceleration?: Vector3; rotation?: Quaternion; scale?: Vector3; text?: { value: string; color: Color4; } | { value: Buffer; color: Buffer; }; material?: number; tree?: number; action?: number; children?: Array<number>; } export declare class Entity { private readonly client; /** * Local ID for this Entity. */ id: number; /** * UUID for this Entity. */ key: string; /** * Entity parent, undefined if root. */ parent?: number; /** * Entity state, which probably refers to an attachment point index for * it's parent ID. */ state: number; /** * Owners UUID for this Entity. */ owner: string; /** * Type (PCode) for this Entity, see `Constants.ObjectTypes` for context. */ type: number; /** * Entity flags, see `Constants.ObjectFlags` for context. */ flags: number; /** * Entity name. */ name?: string; /** * Current position of Entity. */ position?: Vector3; /** * Current velocity of Entity. */ velocity?: Vector3; /** * Current acceleration of Entity. */ acceleration?: Vector3; /** * Current angular velocity of Entity. */ angularVelocity?: Vector3; /** * Current rotation of Entity. */ rotation?: Quaternion; /** * Scale of Entity. */ scale?: Vector3; /** * Floating text, object contains text and color values. */ text?: { value: string; color?: Color4; }; /** * Material type, see `Constants.ObjectMaterials` for context. */ material: number; /** * Tree type, see `Constants.ObjectTrees` for context. */ tree?: number; /** * Default click action, see `Constants.ObjectActions` for context. */ action: number; /** * Local ID values of all children relating to this object. */ children: Array<number>; /** * Whether this entity has been deleted. */ dead: boolean; /** * @param client The Client that instantiated this Entity. * @internal */ constructor(client: Client, data: EntityOptions | Entity); get distance(): number; }