You've already forked vtt-mapper
New PRNG and physics fixes
This commit is contained in:
@@ -9,6 +9,7 @@ export default class Selector
|
||||
static #selected: boolean = false;
|
||||
|
||||
static #previewMesh: Three.Box3Helper;
|
||||
static #ghostMesh: Three.Box3Helper;
|
||||
static #selectionMesh: Three.Box3Helper;
|
||||
|
||||
static get selected(): boolean
|
||||
@@ -18,9 +19,11 @@ export default class Selector
|
||||
static init(): void
|
||||
{
|
||||
Selector.#previewMesh = new Three.Box3Helper(new Three.Box3(), 0x2980B9);
|
||||
Selector.#ghostMesh = new Three.Box3Helper(new Three.Box3(), 0xffffff);
|
||||
Selector.#selectionMesh = new Three.Box3Helper(new Three.Box3(), 0xffffff);
|
||||
|
||||
Renderer.scene.add(Selector.#previewMesh);
|
||||
Renderer.scene.add(Selector.#ghostMesh);
|
||||
Renderer.scene.add(Selector.#selectionMesh);
|
||||
|
||||
Selector.hide();
|
||||
@@ -34,20 +37,18 @@ export default class Selector
|
||||
|
||||
Selector.#previewMesh.visible = true;
|
||||
}
|
||||
static ghostSelect(asset: Asset): void
|
||||
static ghost(asset: Asset): void
|
||||
{
|
||||
Selector.#assets = [asset];
|
||||
Selector.hide();
|
||||
|
||||
if(!asset)
|
||||
{
|
||||
Selector.#ghostMesh.visible = false;
|
||||
return;
|
||||
|
||||
Selector.#selected = false;
|
||||
}
|
||||
|
||||
Selector.#selectionMesh.box.setFromArray([asset.x1, asset.y1, 0, asset.x2, asset.y2, 0]);
|
||||
Selector.#previewMesh.updateMatrix();
|
||||
Selector.#ghostMesh.box.setFromArray([asset.x1, asset.y1, 0, asset.x2, asset.y2, 0]);
|
||||
Selector.#ghostMesh.updateMatrix();
|
||||
|
||||
Selector.#selectionMesh.visible = true;
|
||||
Selector.#ghostMesh.visible = true;
|
||||
}
|
||||
static select(assets: Asset[]): void
|
||||
{
|
||||
@@ -67,13 +68,22 @@ export default class Selector
|
||||
assets.map(e => e.y2).reduce((p, v) => Math.max(p, v), -Infinity),
|
||||
0
|
||||
]);
|
||||
Selector.#previewMesh.updateMatrix();
|
||||
Selector.#selectionMesh.updateMatrix();
|
||||
|
||||
Selector.#selectionMesh.visible = true;
|
||||
}
|
||||
static add(assets: Asset[]): void
|
||||
static toggle(assets: Asset[]): void
|
||||
{
|
||||
Selector.select([...Selector.#assets, ...assets].filter((e, i, a) => a.indexOf(e) === i));
|
||||
for(let i = 0; i < assets.length; i++)
|
||||
{
|
||||
const index = Selector.#assets.indexOf(assets[i]);
|
||||
|
||||
if(index === -1)
|
||||
Selector.#assets.push(assets[i]);
|
||||
else
|
||||
Selector.#assets.splice(index, 1);
|
||||
}
|
||||
Selector.select(Selector.#assets);
|
||||
}
|
||||
static clear(): void
|
||||
{
|
||||
@@ -84,6 +94,7 @@ export default class Selector
|
||||
static hide(): void
|
||||
{
|
||||
Selector.#previewMesh.visible = false;
|
||||
Selector.#ghostMesh.visible = false;
|
||||
Selector.#selectionMesh.visible = false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user