- Implement camera controls

- Option to resolve object properties when fetching from object store (names, descriptions etc). Can be more efficient - TODO: use FamilyProperties for child prims.
- Refactored objectstore to reduce code duplication
This commit is contained in:
Casper Warden
2018-10-19 16:30:09 +01:00
parent ff0a5fa58b
commit 2852c76cb0
42 changed files with 2651 additions and 2121 deletions

View File

@@ -1,34 +1,19 @@
/// <reference types="node" />
import { Circuit } from './Circuit';
import { ObjectUpdateMessage } from './messages/ObjectUpdate';
import { ObjectUpdateCachedMessage } from './messages/ObjectUpdateCached';
import { ObjectUpdateCompressedMessage } from './messages/ObjectUpdateCompressed';
import { ImprovedTerseObjectUpdateMessage } from './messages/ImprovedTerseObjectUpdate';
import { Agent } from './Agent';
import { UUID } from './UUID';
import { NameValue } from './NameValue';
import { ClientEvents } from './ClientEvents';
import { IObjectStore } from './interfaces/IObjectStore';
import { GameObjectFull } from './GameObjectFull';
import { IGameObject } from './interfaces/IGameObject';
import { BotOptionFlags } from '..';
import { RBush3D } from 'rbush-3d/dist';
export declare class ObjectStoreFull implements IObjectStore {
private circuit;
private agent;
private objects;
private objectsByUUID;
private objectsByParent;
private clientEvents;
private options;
rtree: RBush3D;
import { ObjectStoreLite } from './ObjectStoreLite';
export declare class ObjectStoreFull extends ObjectStoreLite implements IObjectStore {
rtree?: RBush3D;
constructor(circuit: Circuit, agent: Agent, clientEvents: ClientEvents, options: BotOptionFlags);
insertIntoRtree(obj: GameObjectFull): void;
deleteObject(objectID: number): void;
readExtraParams(buf: Buffer, pos: number, o: GameObjectFull): number;
getObjectsByParent(parentID: number): IGameObject[];
getObjectByUUID(fullID: UUID | string): IGameObject;
getObjectByLocalID(localID: number): IGameObject;
parseNameValues(str: string): {
[key: string]: NameValue;
};
shutdown(): void;
private findParent;
getObjectsInArea(minX: number, maxX: number, minY: number, maxY: number, minZ: number, maxZ: number): GameObjectFull[];
protected objectUpdate(objectUpdate: ObjectUpdateMessage): void;
protected objectUpdateCached(objectUpdateCached: ObjectUpdateCachedMessage): void;
protected objectUpdateCompressed(objectUpdateCompressed: ObjectUpdateCompressedMessage): void;
protected objectUpdateTerse(objectUpdateTerse: ImprovedTerseObjectUpdateMessage): void;
}