- Implement 3D space rtree-based indexing in the Full ObjectStore

- Implement ScriptDialogReply thanks to Hintswen
- Add a rudimentary object search - doesn't work fully yet because of the missing messages
This commit is contained in:
Casper Warden
2018-10-12 17:31:14 +01:00
parent bb6915e9f5
commit 9eee7f9716
34 changed files with 502 additions and 209 deletions

View File

@@ -1,4 +1,6 @@
import { ITreeBoundingBox } from './ITreeBoundingBox';
export interface IGameObject {
rtreeEntry?: ITreeBoundingBox;
hasNameValueEntry(key: string): boolean;
getNameValueEntry(key: string): string;
}

View File

@@ -1,5 +1,9 @@
import { IGameObject } from './IGameObject';
import { RBush3D } from 'rbush-3d/dist';
import { GameObjectFull } from '../GameObjectFull';
export interface IObjectStore {
rtree?: RBush3D;
getObjectsByParent(parentID: number): IGameObject[];
shutdown(): void;
getObjectsInArea(minX: number, maxX: number, minY: number, maxY: number, minZ: number, maxZ: number): GameObjectFull[];
}

View File

@@ -0,0 +1,5 @@
import { BBox } from 'rbush-3d/dist';
import { IGameObject } from './IGameObject';
export interface ITreeBoundingBox extends BBox {
gameObject: IGameObject;
}

View File

@@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=ITreeBoundingBox.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ITreeBoundingBox.js","sourceRoot":"","sources":["../../../lib/classes/interfaces/ITreeBoundingBox.ts"],"names":[],"mappings":""}