@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
TypeScript
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;
}