minerender 2.1.0-alpha.4 → 2.1.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index.d.mts +19 -18
- package/dist/browser/index.d.ts +19 -18
- package/dist/browser/index.js +60 -61
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/index.mjs +61 -62
- package/dist/browser/index.mjs.map +1 -1
- package/dist/bundle.js +74 -76
- package/dist/bundle.js.map +1 -1
- package/dist/node/index.d.mts +19 -18
- package/dist/node/index.d.ts +19 -18
- package/dist/node/index.js +60 -61
- package/dist/node/index.js.map +1 -1
- package/dist/node/index.mjs +61 -62
- package/dist/node/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/browser/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as three from 'three';
|
|
2
|
-
import { Vector3, PixelFormat, BoxGeometry, Material, Mesh, Euler, Vector2, BufferAttribute, Float32BufferAttribute, Object3D, Box3, InstancedMesh, PerspectiveCamera, OrthographicCamera, Matrix4, Scene, Texture, Camera, MOUSE, TOUCH, WebGLRenderer, EventDispatcher, Raycaster, Intersection, CanvasTexture,
|
|
2
|
+
import { Vector3, PixelFormat, BoxGeometry, Material, Mesh, Euler, Vector2, BufferAttribute, Float32BufferAttribute, BufferGeometry, Object3D, Box3, InstancedMesh, PerspectiveCamera, OrthographicCamera, Matrix4, Scene, Object3DEventMap, Texture, Camera, MOUSE, TOUCH, WebGLRenderer, EventDispatcher, Raycaster, Intersection, CanvasTexture, InterleavedBufferAttribute, TrianglesDrawModes, Line, Points } from 'three';
|
|
3
3
|
import * as nodeCanvas from 'canvas';
|
|
4
4
|
import { ImageData as ImageData$1, CanvasRenderingContext2D } from 'canvas';
|
|
5
5
|
import { AxiosResponse, AxiosRequestConfig } from 'axios';
|
|
@@ -7,8 +7,6 @@ import { Buffer as Buffer$1 } from 'buffer';
|
|
|
7
7
|
import { NBT } from 'prismarine-nbt';
|
|
8
8
|
import { ZipReader } from '@zip.js/zip.js';
|
|
9
9
|
import { AsyncLoadingCache, SimpleCache } from '@inventivetalent/loading-cache';
|
|
10
|
-
import { BufferGeometry } from 'three/src/core/BufferGeometry';
|
|
11
|
-
import { Material as Material$1 } from 'three/src/materials/Material';
|
|
12
10
|
import Stats from 'stats.js';
|
|
13
11
|
import { EffectComposer } from 'postprocessing';
|
|
14
12
|
|
|
@@ -62,7 +60,7 @@ declare function createCanvas(width: number, height: number): CompatCanvas;
|
|
|
62
60
|
declare abstract class PersistentCache<B = unknown> {
|
|
63
61
|
readonly backing: B;
|
|
64
62
|
/** Bump to invalidate every persisted entry. */
|
|
65
|
-
static readonly VERSION =
|
|
63
|
+
static readonly VERSION = 2;
|
|
66
64
|
static open(name: string): PersistentCache;
|
|
67
65
|
protected constructor(backing: B);
|
|
68
66
|
abstract get<T>(key: string): Promise<T>;
|
|
@@ -431,7 +429,7 @@ interface Transformable {
|
|
|
431
429
|
declare function isTransformable(obj: any): obj is Transformable;
|
|
432
430
|
|
|
433
431
|
declare const changeEvent: {
|
|
434
|
-
type:
|
|
432
|
+
type: "change";
|
|
435
433
|
};
|
|
436
434
|
type Maybe<T> = T | undefined;
|
|
437
435
|
declare function md5(str: string): string;
|
|
@@ -623,6 +621,7 @@ declare class AssetLoader {
|
|
|
623
621
|
static addSource(key: string, source: AssetSource, override?: boolean): void;
|
|
624
622
|
static removeSource(key: string): Maybe<AssetSource>;
|
|
625
623
|
static getAll<T extends MinecraftAsset>(key: AssetKey, parser: AssetParser | string): Promise<T[]>;
|
|
624
|
+
/** Returns the first defined result in source-priority order, without merging assets. */
|
|
626
625
|
static get<T extends MinecraftAsset>(key: AssetKey, parser: AssetParser | string): Promise<Maybe<T>>;
|
|
627
626
|
}
|
|
628
627
|
|
|
@@ -886,7 +885,9 @@ interface MineRenderSceneOptions {
|
|
|
886
885
|
}
|
|
887
886
|
declare function isMineRenderScene(obj: any): obj is MineRenderScene;
|
|
888
887
|
|
|
889
|
-
declare class SceneObject extends Object3D
|
|
888
|
+
declare class SceneObject extends Object3D<Object3DEventMap & {
|
|
889
|
+
change: {};
|
|
890
|
+
}> implements Disposable, Instanceable, Transformable {
|
|
890
891
|
readonly isSceneObject: true;
|
|
891
892
|
static readonly DEFAULT_OPTIONS: SceneObjectOptions;
|
|
892
893
|
readonly options: SceneObjectOptions;
|
|
@@ -912,9 +913,9 @@ declare class SceneObject extends Object3D implements Disposable, Instanceable,
|
|
|
912
913
|
*/
|
|
913
914
|
toggleGroupVisibility(name: string, visible?: boolean): boolean;
|
|
914
915
|
protected addOrReplaceMesh(mesh: Mesh, parent: Object3D, name?: string): void;
|
|
915
|
-
protected createAndAddMesh(name?: string, group?: Object3D, geometry?: BufferGeometry, material?: Material
|
|
916
|
-
protected createMesh(name?: string, geometry?: BufferGeometry, material?: Material
|
|
917
|
-
protected createInstancedMesh(name: Maybe<string>, geometry: BufferGeometry, material: Material
|
|
916
|
+
protected createAndAddMesh(name?: string, group?: Object3D, geometry?: BufferGeometry, material?: Material | Material[], offsetAxis?: Axis, offset?: number): Mesh;
|
|
917
|
+
protected createMesh(name?: string, geometry?: BufferGeometry, material?: Material | Material[], offsetAxis?: Axis, offset?: number): Mesh;
|
|
918
|
+
protected createInstancedMesh(name: Maybe<string>, geometry: BufferGeometry, material: Material | Material[], count: number): InstancedMesh;
|
|
918
919
|
/**
|
|
919
920
|
* Get a mesh by its name
|
|
920
921
|
*/
|
|
@@ -1319,7 +1320,7 @@ declare class Renderer implements Disposable {
|
|
|
1319
1320
|
protected _scene: MineRenderScene;
|
|
1320
1321
|
protected _camera: Camera;
|
|
1321
1322
|
protected _renderer: WebGLRenderer;
|
|
1322
|
-
protected _composer
|
|
1323
|
+
protected _composer?: EffectComposer;
|
|
1323
1324
|
protected _controls?: OrbitControls;
|
|
1324
1325
|
protected _stats?: Stats;
|
|
1325
1326
|
protected _dirty: boolean;
|
|
@@ -1335,7 +1336,7 @@ declare class Renderer implements Disposable {
|
|
|
1335
1336
|
protected createScene(): MineRenderScene;
|
|
1336
1337
|
protected createCamera(): Camera;
|
|
1337
1338
|
protected createRenderer(): WebGLRenderer;
|
|
1338
|
-
protected createComposer(): EffectComposer
|
|
1339
|
+
protected createComposer(): Maybe<EffectComposer>;
|
|
1339
1340
|
protected createControls(): Maybe<OrbitControls>;
|
|
1340
1341
|
init(): void;
|
|
1341
1342
|
get element(): Maybe<HTMLElement>;
|
|
@@ -1344,7 +1345,7 @@ declare class Renderer implements Disposable {
|
|
|
1344
1345
|
* Redraws when the dispatcher emits the selected event. Registering the same pair twice has no effect.
|
|
1345
1346
|
* The renderer removes its listener on disposal; the caller retains ownership of the dispatcher.
|
|
1346
1347
|
*/
|
|
1347
|
-
registerEventDispatcher(dispatcher: EventDispatcher
|
|
1348
|
+
registerEventDispatcher(dispatcher: EventDispatcher<any>, changeEvent?: string): void;
|
|
1348
1349
|
resize(width: number, height: number): void;
|
|
1349
1350
|
get dirty(): boolean;
|
|
1350
1351
|
set dirty(dirty: boolean);
|
|
@@ -1364,7 +1365,7 @@ declare class Renderer implements Disposable {
|
|
|
1364
1365
|
get scene(): MineRenderScene;
|
|
1365
1366
|
get camera(): Camera;
|
|
1366
1367
|
get renderer(): WebGLRenderer;
|
|
1367
|
-
get composer(): EffectComposer
|
|
1368
|
+
get composer(): Maybe<EffectComposer>;
|
|
1368
1369
|
/** Renderer-owned controls, or undefined when disabled at construction or after disposal. */
|
|
1369
1370
|
get controls(): Maybe<OrbitControls>;
|
|
1370
1371
|
}
|
|
@@ -1421,7 +1422,7 @@ declare class SceneInspector {
|
|
|
1421
1422
|
private selectedObject?;
|
|
1422
1423
|
constructor(renderer: Renderer);
|
|
1423
1424
|
protected init(): void;
|
|
1424
|
-
findMeshChildren(from: Object3D, out?: Mesh[]): Mesh<three.BufferGeometry
|
|
1425
|
+
findMeshChildren(from: Object3D, out?: Mesh[]): Mesh<three.BufferGeometry<three.NormalBufferAttributes>, three.Material | three.Material[], three.Object3DEventMap>[];
|
|
1425
1426
|
onClick(event: any): void;
|
|
1426
1427
|
appendTo(el: HTMLElement): void;
|
|
1427
1428
|
protected handleRaycasterObjects(intersections: Intersection[]): void;
|
|
@@ -1523,12 +1524,12 @@ declare class Textures {
|
|
|
1523
1524
|
static getImage(key: TextureKey): Texture;
|
|
1524
1525
|
}
|
|
1525
1526
|
|
|
1526
|
-
declare function mergeBufferGeometries(geometries: BufferGeometry
|
|
1527
|
+
declare function mergeBufferGeometries(geometries: BufferGeometry[], useGroups?: boolean): BufferGeometry;
|
|
1527
1528
|
declare function mergeBufferAttributes(attributes: BufferAttribute[]): BufferAttribute;
|
|
1528
1529
|
declare function interleaveAttributes(attributes: BufferAttribute[]): InterleavedBufferAttribute;
|
|
1529
|
-
declare function estimateBytesUsed(geometry: BufferGeometry
|
|
1530
|
-
declare function mergeVertices(geometry: BufferGeometry
|
|
1531
|
-
declare function toTrianglesDrawMode(geometry: BufferGeometry
|
|
1530
|
+
declare function estimateBytesUsed(geometry: BufferGeometry): number;
|
|
1531
|
+
declare function mergeVertices(geometry: BufferGeometry, tolerance?: number): BufferGeometry;
|
|
1532
|
+
declare function toTrianglesDrawMode(geometry: BufferGeometry, drawMode: TrianglesDrawModes): BufferGeometry;
|
|
1532
1533
|
declare function computeMorphedAttributes(object: Mesh | Line | Points): object;
|
|
1533
1534
|
|
|
1534
1535
|
interface BlockInfo {
|
package/dist/browser/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as three from 'three';
|
|
2
|
-
import { Vector3, PixelFormat, BoxGeometry, Material, Mesh, Euler, Vector2, BufferAttribute, Float32BufferAttribute, Object3D, Box3, InstancedMesh, PerspectiveCamera, OrthographicCamera, Matrix4, Scene, Texture, Camera, MOUSE, TOUCH, WebGLRenderer, EventDispatcher, Raycaster, Intersection, CanvasTexture,
|
|
2
|
+
import { Vector3, PixelFormat, BoxGeometry, Material, Mesh, Euler, Vector2, BufferAttribute, Float32BufferAttribute, BufferGeometry, Object3D, Box3, InstancedMesh, PerspectiveCamera, OrthographicCamera, Matrix4, Scene, Object3DEventMap, Texture, Camera, MOUSE, TOUCH, WebGLRenderer, EventDispatcher, Raycaster, Intersection, CanvasTexture, InterleavedBufferAttribute, TrianglesDrawModes, Line, Points } from 'three';
|
|
3
3
|
import * as nodeCanvas from 'canvas';
|
|
4
4
|
import { ImageData as ImageData$1, CanvasRenderingContext2D } from 'canvas';
|
|
5
5
|
import { AxiosResponse, AxiosRequestConfig } from 'axios';
|
|
@@ -7,8 +7,6 @@ import { Buffer as Buffer$1 } from 'buffer';
|
|
|
7
7
|
import { NBT } from 'prismarine-nbt';
|
|
8
8
|
import { ZipReader } from '@zip.js/zip.js';
|
|
9
9
|
import { AsyncLoadingCache, SimpleCache } from '@inventivetalent/loading-cache';
|
|
10
|
-
import { BufferGeometry } from 'three/src/core/BufferGeometry';
|
|
11
|
-
import { Material as Material$1 } from 'three/src/materials/Material';
|
|
12
10
|
import Stats from 'stats.js';
|
|
13
11
|
import { EffectComposer } from 'postprocessing';
|
|
14
12
|
|
|
@@ -62,7 +60,7 @@ declare function createCanvas(width: number, height: number): CompatCanvas;
|
|
|
62
60
|
declare abstract class PersistentCache<B = unknown> {
|
|
63
61
|
readonly backing: B;
|
|
64
62
|
/** Bump to invalidate every persisted entry. */
|
|
65
|
-
static readonly VERSION =
|
|
63
|
+
static readonly VERSION = 2;
|
|
66
64
|
static open(name: string): PersistentCache;
|
|
67
65
|
protected constructor(backing: B);
|
|
68
66
|
abstract get<T>(key: string): Promise<T>;
|
|
@@ -431,7 +429,7 @@ interface Transformable {
|
|
|
431
429
|
declare function isTransformable(obj: any): obj is Transformable;
|
|
432
430
|
|
|
433
431
|
declare const changeEvent: {
|
|
434
|
-
type:
|
|
432
|
+
type: "change";
|
|
435
433
|
};
|
|
436
434
|
type Maybe<T> = T | undefined;
|
|
437
435
|
declare function md5(str: string): string;
|
|
@@ -623,6 +621,7 @@ declare class AssetLoader {
|
|
|
623
621
|
static addSource(key: string, source: AssetSource, override?: boolean): void;
|
|
624
622
|
static removeSource(key: string): Maybe<AssetSource>;
|
|
625
623
|
static getAll<T extends MinecraftAsset>(key: AssetKey, parser: AssetParser | string): Promise<T[]>;
|
|
624
|
+
/** Returns the first defined result in source-priority order, without merging assets. */
|
|
626
625
|
static get<T extends MinecraftAsset>(key: AssetKey, parser: AssetParser | string): Promise<Maybe<T>>;
|
|
627
626
|
}
|
|
628
627
|
|
|
@@ -886,7 +885,9 @@ interface MineRenderSceneOptions {
|
|
|
886
885
|
}
|
|
887
886
|
declare function isMineRenderScene(obj: any): obj is MineRenderScene;
|
|
888
887
|
|
|
889
|
-
declare class SceneObject extends Object3D
|
|
888
|
+
declare class SceneObject extends Object3D<Object3DEventMap & {
|
|
889
|
+
change: {};
|
|
890
|
+
}> implements Disposable, Instanceable, Transformable {
|
|
890
891
|
readonly isSceneObject: true;
|
|
891
892
|
static readonly DEFAULT_OPTIONS: SceneObjectOptions;
|
|
892
893
|
readonly options: SceneObjectOptions;
|
|
@@ -912,9 +913,9 @@ declare class SceneObject extends Object3D implements Disposable, Instanceable,
|
|
|
912
913
|
*/
|
|
913
914
|
toggleGroupVisibility(name: string, visible?: boolean): boolean;
|
|
914
915
|
protected addOrReplaceMesh(mesh: Mesh, parent: Object3D, name?: string): void;
|
|
915
|
-
protected createAndAddMesh(name?: string, group?: Object3D, geometry?: BufferGeometry, material?: Material
|
|
916
|
-
protected createMesh(name?: string, geometry?: BufferGeometry, material?: Material
|
|
917
|
-
protected createInstancedMesh(name: Maybe<string>, geometry: BufferGeometry, material: Material
|
|
916
|
+
protected createAndAddMesh(name?: string, group?: Object3D, geometry?: BufferGeometry, material?: Material | Material[], offsetAxis?: Axis, offset?: number): Mesh;
|
|
917
|
+
protected createMesh(name?: string, geometry?: BufferGeometry, material?: Material | Material[], offsetAxis?: Axis, offset?: number): Mesh;
|
|
918
|
+
protected createInstancedMesh(name: Maybe<string>, geometry: BufferGeometry, material: Material | Material[], count: number): InstancedMesh;
|
|
918
919
|
/**
|
|
919
920
|
* Get a mesh by its name
|
|
920
921
|
*/
|
|
@@ -1319,7 +1320,7 @@ declare class Renderer implements Disposable {
|
|
|
1319
1320
|
protected _scene: MineRenderScene;
|
|
1320
1321
|
protected _camera: Camera;
|
|
1321
1322
|
protected _renderer: WebGLRenderer;
|
|
1322
|
-
protected _composer
|
|
1323
|
+
protected _composer?: EffectComposer;
|
|
1323
1324
|
protected _controls?: OrbitControls;
|
|
1324
1325
|
protected _stats?: Stats;
|
|
1325
1326
|
protected _dirty: boolean;
|
|
@@ -1335,7 +1336,7 @@ declare class Renderer implements Disposable {
|
|
|
1335
1336
|
protected createScene(): MineRenderScene;
|
|
1336
1337
|
protected createCamera(): Camera;
|
|
1337
1338
|
protected createRenderer(): WebGLRenderer;
|
|
1338
|
-
protected createComposer(): EffectComposer
|
|
1339
|
+
protected createComposer(): Maybe<EffectComposer>;
|
|
1339
1340
|
protected createControls(): Maybe<OrbitControls>;
|
|
1340
1341
|
init(): void;
|
|
1341
1342
|
get element(): Maybe<HTMLElement>;
|
|
@@ -1344,7 +1345,7 @@ declare class Renderer implements Disposable {
|
|
|
1344
1345
|
* Redraws when the dispatcher emits the selected event. Registering the same pair twice has no effect.
|
|
1345
1346
|
* The renderer removes its listener on disposal; the caller retains ownership of the dispatcher.
|
|
1346
1347
|
*/
|
|
1347
|
-
registerEventDispatcher(dispatcher: EventDispatcher
|
|
1348
|
+
registerEventDispatcher(dispatcher: EventDispatcher<any>, changeEvent?: string): void;
|
|
1348
1349
|
resize(width: number, height: number): void;
|
|
1349
1350
|
get dirty(): boolean;
|
|
1350
1351
|
set dirty(dirty: boolean);
|
|
@@ -1364,7 +1365,7 @@ declare class Renderer implements Disposable {
|
|
|
1364
1365
|
get scene(): MineRenderScene;
|
|
1365
1366
|
get camera(): Camera;
|
|
1366
1367
|
get renderer(): WebGLRenderer;
|
|
1367
|
-
get composer(): EffectComposer
|
|
1368
|
+
get composer(): Maybe<EffectComposer>;
|
|
1368
1369
|
/** Renderer-owned controls, or undefined when disabled at construction or after disposal. */
|
|
1369
1370
|
get controls(): Maybe<OrbitControls>;
|
|
1370
1371
|
}
|
|
@@ -1421,7 +1422,7 @@ declare class SceneInspector {
|
|
|
1421
1422
|
private selectedObject?;
|
|
1422
1423
|
constructor(renderer: Renderer);
|
|
1423
1424
|
protected init(): void;
|
|
1424
|
-
findMeshChildren(from: Object3D, out?: Mesh[]): Mesh<three.BufferGeometry
|
|
1425
|
+
findMeshChildren(from: Object3D, out?: Mesh[]): Mesh<three.BufferGeometry<three.NormalBufferAttributes>, three.Material | three.Material[], three.Object3DEventMap>[];
|
|
1425
1426
|
onClick(event: any): void;
|
|
1426
1427
|
appendTo(el: HTMLElement): void;
|
|
1427
1428
|
protected handleRaycasterObjects(intersections: Intersection[]): void;
|
|
@@ -1523,12 +1524,12 @@ declare class Textures {
|
|
|
1523
1524
|
static getImage(key: TextureKey): Texture;
|
|
1524
1525
|
}
|
|
1525
1526
|
|
|
1526
|
-
declare function mergeBufferGeometries(geometries: BufferGeometry
|
|
1527
|
+
declare function mergeBufferGeometries(geometries: BufferGeometry[], useGroups?: boolean): BufferGeometry;
|
|
1527
1528
|
declare function mergeBufferAttributes(attributes: BufferAttribute[]): BufferAttribute;
|
|
1528
1529
|
declare function interleaveAttributes(attributes: BufferAttribute[]): InterleavedBufferAttribute;
|
|
1529
|
-
declare function estimateBytesUsed(geometry: BufferGeometry
|
|
1530
|
-
declare function mergeVertices(geometry: BufferGeometry
|
|
1531
|
-
declare function toTrianglesDrawMode(geometry: BufferGeometry
|
|
1530
|
+
declare function estimateBytesUsed(geometry: BufferGeometry): number;
|
|
1531
|
+
declare function mergeVertices(geometry: BufferGeometry, tolerance?: number): BufferGeometry;
|
|
1532
|
+
declare function toTrianglesDrawMode(geometry: BufferGeometry, drawMode: TrianglesDrawModes): BufferGeometry;
|
|
1532
1533
|
declare function computeMorphedAttributes(object: Mesh | Line | Points): object;
|
|
1533
1534
|
|
|
1534
1535
|
interface BlockInfo {
|
package/dist/browser/index.js
CHANGED
|
@@ -90,7 +90,7 @@ var require_dist = __commonJS({
|
|
|
90
90
|
return false;
|
|
91
91
|
};
|
|
92
92
|
var PROTECTED_KEYS = ["__proto__"];
|
|
93
|
-
var
|
|
93
|
+
var merge10 = function() {
|
|
94
94
|
var objects = [];
|
|
95
95
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
96
96
|
objects[_i] = arguments[_i];
|
|
@@ -101,9 +101,9 @@ var require_dist = __commonJS({
|
|
|
101
101
|
return;
|
|
102
102
|
}
|
|
103
103
|
if (Array.isArray(result[key]) && Array.isArray(current[key])) {
|
|
104
|
-
result[key] =
|
|
104
|
+
result[key] = merge10.options.mergeArrays ? Array.from(new Set(result[key].concat(current[key]))) : current[key];
|
|
105
105
|
} else if (isObject(result[key]) && isObject(current[key])) {
|
|
106
|
-
result[key] =
|
|
106
|
+
result[key] = merge10(result[key], current[key]);
|
|
107
107
|
} else {
|
|
108
108
|
result[key] = current[key];
|
|
109
109
|
}
|
|
@@ -114,18 +114,18 @@ var require_dist = __commonJS({
|
|
|
114
114
|
var defaultOptions = {
|
|
115
115
|
mergeArrays: true
|
|
116
116
|
};
|
|
117
|
-
|
|
118
|
-
|
|
117
|
+
merge10.options = defaultOptions;
|
|
118
|
+
merge10.withOptions = function(options) {
|
|
119
119
|
var objects = [];
|
|
120
120
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
121
121
|
objects[_i - 1] = arguments[_i];
|
|
122
122
|
}
|
|
123
|
-
|
|
124
|
-
var result =
|
|
125
|
-
|
|
123
|
+
merge10.options = __assign({ mergeArrays: true }, options);
|
|
124
|
+
var result = merge10.apply(void 0, __spreadArray([], __read(objects), false));
|
|
125
|
+
merge10.options = defaultOptions;
|
|
126
126
|
return result;
|
|
127
127
|
};
|
|
128
|
-
exports.default =
|
|
128
|
+
exports.default = merge10;
|
|
129
129
|
}
|
|
130
130
|
});
|
|
131
131
|
|
|
@@ -318,7 +318,7 @@ var _PersistentCache = class _PersistentCache {
|
|
|
318
318
|
}
|
|
319
319
|
};
|
|
320
320
|
/** Bump to invalidate every persisted entry. */
|
|
321
|
-
_PersistentCache.VERSION =
|
|
321
|
+
_PersistentCache.VERSION = 2;
|
|
322
322
|
var PersistentCache = _PersistentCache;
|
|
323
323
|
|
|
324
324
|
// src/env/browser/BrowserCache.ts
|
|
@@ -419,7 +419,8 @@ var BrowserEnv = class {
|
|
|
419
419
|
}
|
|
420
420
|
openCache(name, version) {
|
|
421
421
|
return new BrowserCache(import_localforage.default.createInstance({
|
|
422
|
-
|
|
422
|
+
// IndexedDB schema upgrades retain records; each cache generation needs its own database.
|
|
423
|
+
name: name + version,
|
|
423
424
|
version
|
|
424
425
|
}));
|
|
425
426
|
}
|
|
@@ -631,6 +632,7 @@ var import_three5 = require("three");
|
|
|
631
632
|
|
|
632
633
|
// src/texture/TextureLoader.ts
|
|
633
634
|
var import_three4 = require("three");
|
|
635
|
+
var THREE = __toESM(require("three"));
|
|
634
636
|
|
|
635
637
|
// src/canvas/CanvasCompat.ts
|
|
636
638
|
function createImage(width, height) {
|
|
@@ -1019,6 +1021,7 @@ var TextureLoader = class {
|
|
|
1019
1021
|
}
|
|
1020
1022
|
static loadInBackground(src, format = import_three4.RGBAFormat, rotation = 0) {
|
|
1021
1023
|
const texture = this.createTexture();
|
|
1024
|
+
texture.colorSpace = THREE.SRGBColorSpace;
|
|
1022
1025
|
const image = ImageLoader.loadElement(src);
|
|
1023
1026
|
image.onload = function() {
|
|
1024
1027
|
texture.needsUpdate = true;
|
|
@@ -1030,6 +1033,7 @@ var TextureLoader = class {
|
|
|
1030
1033
|
}
|
|
1031
1034
|
static load(src, format = import_three4.RGBAFormat, rotation = 0) {
|
|
1032
1035
|
const texture = new import_three4.Texture();
|
|
1036
|
+
texture.colorSpace = THREE.SRGBColorSpace;
|
|
1033
1037
|
ImageLoader.getData(src).then((image) => {
|
|
1034
1038
|
texture.needsUpdate = true;
|
|
1035
1039
|
texture.image = image;
|
|
@@ -1041,11 +1045,11 @@ var TextureLoader = class {
|
|
|
1041
1045
|
};
|
|
1042
1046
|
|
|
1043
1047
|
// src/texture/Textures.ts
|
|
1044
|
-
var
|
|
1048
|
+
var THREE2 = __toESM(require("three"));
|
|
1045
1049
|
var Textures = class _Textures {
|
|
1046
1050
|
static initTextureProps(texture) {
|
|
1047
|
-
texture.magFilter =
|
|
1048
|
-
texture.minFilter =
|
|
1051
|
+
texture.magFilter = THREE2.NearestFilter;
|
|
1052
|
+
texture.minFilter = THREE2.NearestFilter;
|
|
1049
1053
|
texture.anisotropy = 0;
|
|
1050
1054
|
return texture;
|
|
1051
1055
|
}
|
|
@@ -1056,7 +1060,9 @@ var Textures = class _Textures {
|
|
|
1056
1060
|
return new import_three5.Texture();
|
|
1057
1061
|
}
|
|
1058
1062
|
static createCanvasTexture(canvas) {
|
|
1059
|
-
|
|
1063
|
+
const texture = new import_three5.CanvasTexture(canvas);
|
|
1064
|
+
texture.colorSpace = THREE2.SRGBColorSpace;
|
|
1065
|
+
return this.initTextureProps(texture);
|
|
1060
1066
|
}
|
|
1061
1067
|
static getImage(key) {
|
|
1062
1068
|
const keyStr = serializeTextureKey(key);
|
|
@@ -1173,6 +1179,9 @@ var _Materials = class _Materials {
|
|
|
1173
1179
|
gl_FragColor = vec4(lift + color.rgb * light2, 1.0);
|
|
1174
1180
|
|
|
1175
1181
|
}
|
|
1182
|
+
|
|
1183
|
+
#include <tonemapping_fragment>
|
|
1184
|
+
#include <colorspace_fragment>
|
|
1176
1185
|
}
|
|
1177
1186
|
`;
|
|
1178
1187
|
try {
|
|
@@ -1803,7 +1812,6 @@ var ArchiveAssetSource = class _ArchiveAssetSource extends AssetSource {
|
|
|
1803
1812
|
};
|
|
1804
1813
|
|
|
1805
1814
|
// src/assets/AssetLoader.ts
|
|
1806
|
-
var import_ts_deepmerge3 = __toESM(require_dist());
|
|
1807
1815
|
var p5 = prefix("AssetLoader");
|
|
1808
1816
|
var _AssetLoader = class _AssetLoader {
|
|
1809
1817
|
static addSource(key, source, override = true) {
|
|
@@ -1827,7 +1835,6 @@ var _AssetLoader = class _AssetLoader {
|
|
|
1827
1835
|
return void 0;
|
|
1828
1836
|
}
|
|
1829
1837
|
static async getAll(key, parser) {
|
|
1830
|
-
console.log(this._SOURCES);
|
|
1831
1838
|
let promises = [];
|
|
1832
1839
|
for (const source of this._SOURCES) {
|
|
1833
1840
|
promises.push(source.source.get(key, parser));
|
|
@@ -1836,24 +1843,16 @@ var _AssetLoader = class _AssetLoader {
|
|
|
1836
1843
|
return results.filter((r) => r != void 0);
|
|
1837
1844
|
});
|
|
1838
1845
|
}
|
|
1846
|
+
/** Returns the first defined result in source-priority order, without merging assets. */
|
|
1839
1847
|
static async get(key, parser) {
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
return Promise.all(promises).then((results) => {
|
|
1846
|
-
const fallback = results[results.length - 1];
|
|
1847
|
-
for (const result of results) {
|
|
1848
|
-
if (result) {
|
|
1849
|
-
if (fallback) {
|
|
1850
|
-
return (0, import_ts_deepmerge3.default)({}, fallback, result);
|
|
1851
|
-
}
|
|
1852
|
-
return result;
|
|
1853
|
-
}
|
|
1848
|
+
const sources = [...this._SOURCES];
|
|
1849
|
+
for (const source of sources) {
|
|
1850
|
+
const result = await source.source.get(key, parser);
|
|
1851
|
+
if (result !== void 0) {
|
|
1852
|
+
return result;
|
|
1854
1853
|
}
|
|
1855
|
-
|
|
1856
|
-
|
|
1854
|
+
}
|
|
1855
|
+
return void 0;
|
|
1857
1856
|
}
|
|
1858
1857
|
};
|
|
1859
1858
|
_AssetLoader.ROOT = DEFAULT_ROOT;
|
|
@@ -2675,7 +2674,7 @@ var MineRenderError = class _MineRenderError extends Error {
|
|
|
2675
2674
|
};
|
|
2676
2675
|
|
|
2677
2676
|
// src/renderer/SceneObject.ts
|
|
2678
|
-
var
|
|
2677
|
+
var import_ts_deepmerge3 = __toESM(require_dist());
|
|
2679
2678
|
var p7 = prefix("SceneObject");
|
|
2680
2679
|
var _SceneObject = class _SceneObject extends import_three9.Object3D {
|
|
2681
2680
|
constructor(options) {
|
|
@@ -2684,7 +2683,7 @@ var _SceneObject = class _SceneObject extends import_three9.Object3D {
|
|
|
2684
2683
|
this.materialCallbacks = {};
|
|
2685
2684
|
this._isInstanced = false;
|
|
2686
2685
|
this._instanceCounter = 0;
|
|
2687
|
-
this.options = (0,
|
|
2686
|
+
this.options = (0, import_ts_deepmerge3.default)({}, _SceneObject.DEFAULT_OPTIONS, options ?? {});
|
|
2688
2687
|
console.log("SceneObject options", this.options);
|
|
2689
2688
|
}
|
|
2690
2689
|
set scene(scene) {
|
|
@@ -3033,7 +3032,7 @@ var _SceneObject = class _SceneObject extends import_three9.Object3D {
|
|
|
3033
3032
|
}
|
|
3034
3033
|
//</editor-fold>
|
|
3035
3034
|
};
|
|
3036
|
-
_SceneObject.DEFAULT_OPTIONS = (0,
|
|
3035
|
+
_SceneObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge3.default)({}, {
|
|
3037
3036
|
instanceMeshes: true,
|
|
3038
3037
|
maxInstanceCount: 50,
|
|
3039
3038
|
mergeMeshes: true,
|
|
@@ -3045,16 +3044,16 @@ function isSceneObject(obj) {
|
|
|
3045
3044
|
}
|
|
3046
3045
|
|
|
3047
3046
|
// src/entity/scene/EntityObject.ts
|
|
3048
|
-
var
|
|
3047
|
+
var import_ts_deepmerge4 = __toESM(require_dist());
|
|
3049
3048
|
var import_three11 = require("three");
|
|
3050
|
-
var
|
|
3049
|
+
var THREE3 = __toESM(require("three"));
|
|
3051
3050
|
var EntityObject = class extends SceneObject {
|
|
3052
3051
|
constructor(entity, options) {
|
|
3053
3052
|
super();
|
|
3054
3053
|
this.entity = entity;
|
|
3055
3054
|
this.isEntityObject = true;
|
|
3056
3055
|
this.meshesCreated = false;
|
|
3057
|
-
this.options = (0,
|
|
3056
|
+
this.options = (0, import_ts_deepmerge4.default)({}, SceneObject.DEFAULT_OPTIONS, options ?? {});
|
|
3058
3057
|
}
|
|
3059
3058
|
async init() {
|
|
3060
3059
|
this.createMeshes();
|
|
@@ -3091,8 +3090,8 @@ var EntityObject = class extends SceneObject {
|
|
|
3091
3090
|
const l = cube.maxZ - cube.minZ;
|
|
3092
3091
|
const uv = texture.toUvArray(w, h, l);
|
|
3093
3092
|
const cubeGeo = this._getBoxGeometryForDimensionsAndUv(w, h, l, uv).clone();
|
|
3094
|
-
cubeGeo.applyMatrix4(new
|
|
3095
|
-
cubeGeo.applyMatrix4(new
|
|
3093
|
+
cubeGeo.applyMatrix4(new THREE3.Matrix4().makeTranslation(w / 2, h / 2, l / 2));
|
|
3094
|
+
cubeGeo.applyMatrix4(new THREE3.Matrix4().makeTranslation(cube.minX, cube.minY, cube.minZ));
|
|
3096
3095
|
applyModelPartRotation(part, cubeGeo);
|
|
3097
3096
|
const mesh = this.createMesh(partName, cubeGeo, mat);
|
|
3098
3097
|
partAnchor.add(mesh);
|
|
@@ -3121,7 +3120,7 @@ var EntityObject = class extends SceneObject {
|
|
|
3121
3120
|
}
|
|
3122
3121
|
}
|
|
3123
3122
|
};
|
|
3124
|
-
EntityObject.DEFAULT_OPTIONS = (0,
|
|
3123
|
+
EntityObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge4.default)({}, SceneObject.DEFAULT_OPTIONS, {});
|
|
3125
3124
|
function isEntityObject(obj) {
|
|
3126
3125
|
return obj.isEntityObject;
|
|
3127
3126
|
}
|
|
@@ -4112,7 +4111,7 @@ function computeMorphedAttributes(object) {
|
|
|
4112
4111
|
}
|
|
4113
4112
|
|
|
4114
4113
|
// src/model/scene/ModelObject.ts
|
|
4115
|
-
var
|
|
4114
|
+
var import_ts_deepmerge5 = __toESM(require_dist());
|
|
4116
4115
|
var p10 = prefix("ModelObject");
|
|
4117
4116
|
var _ModelObject = class _ModelObject extends SceneObject {
|
|
4118
4117
|
constructor(originalModel, options) {
|
|
@@ -4120,7 +4119,7 @@ var _ModelObject = class _ModelObject extends SceneObject {
|
|
|
4120
4119
|
this.originalModel = originalModel;
|
|
4121
4120
|
this.isModelObject = true;
|
|
4122
4121
|
this.meshesCreated = false;
|
|
4123
|
-
this.options = (0,
|
|
4122
|
+
this.options = (0, import_ts_deepmerge5.default)({}, _ModelObject.DEFAULT_OPTIONS, options ?? {});
|
|
4124
4123
|
console.log("ModelObject options", this.options);
|
|
4125
4124
|
}
|
|
4126
4125
|
async init() {
|
|
@@ -4218,14 +4217,14 @@ var _ModelObject = class _ModelObject extends SceneObject {
|
|
|
4218
4217
|
}
|
|
4219
4218
|
}
|
|
4220
4219
|
};
|
|
4221
|
-
_ModelObject.DEFAULT_OPTIONS = (0,
|
|
4220
|
+
_ModelObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge5.default)({}, SceneObject.DEFAULT_OPTIONS, {});
|
|
4222
4221
|
var ModelObject = _ModelObject;
|
|
4223
4222
|
function isModelObject(obj) {
|
|
4224
4223
|
return obj.isModelObject;
|
|
4225
4224
|
}
|
|
4226
4225
|
|
|
4227
4226
|
// src/model/block/scene/BlockObject.ts
|
|
4228
|
-
var
|
|
4227
|
+
var import_ts_deepmerge6 = __toESM(require_dist());
|
|
4229
4228
|
var import_three16 = require("three");
|
|
4230
4229
|
var p11 = prefix("BlockObject");
|
|
4231
4230
|
var _BlockObject = class _BlockObject extends SceneObject {
|
|
@@ -4241,7 +4240,7 @@ var _BlockObject = class _BlockObject extends SceneObject {
|
|
|
4241
4240
|
this._instanceModel = [];
|
|
4242
4241
|
this._variants = [];
|
|
4243
4242
|
this._models = [];
|
|
4244
|
-
this.options = (0,
|
|
4243
|
+
this.options = (0, import_ts_deepmerge6.default)({}, _BlockObject.DEFAULT_OPTIONS, options ?? {});
|
|
4245
4244
|
}
|
|
4246
4245
|
async init() {
|
|
4247
4246
|
if (this.options.applyDefaultState) {
|
|
@@ -4530,7 +4529,7 @@ var _BlockObject = class _BlockObject extends SceneObject {
|
|
|
4530
4529
|
//TODO: should override rotation + scale methods
|
|
4531
4530
|
//TODO
|
|
4532
4531
|
};
|
|
4533
|
-
_BlockObject.DEFAULT_OPTIONS = (0,
|
|
4532
|
+
_BlockObject.DEFAULT_OPTIONS = (0, import_ts_deepmerge6.default)({}, ModelObject.DEFAULT_OPTIONS, {
|
|
4534
4533
|
applyDefaultState: true
|
|
4535
4534
|
});
|
|
4536
4535
|
var BlockObject = _BlockObject;
|
|
@@ -4580,7 +4579,7 @@ var StructureParser = class {
|
|
|
4580
4579
|
|
|
4581
4580
|
// src/renderer/MineRenderScene.ts
|
|
4582
4581
|
var import_three17 = require("three");
|
|
4583
|
-
var
|
|
4582
|
+
var import_ts_deepmerge8 = __toESM(require_dist());
|
|
4584
4583
|
|
|
4585
4584
|
// src/skin/SkinPart.ts
|
|
4586
4585
|
var SkinPart = /* @__PURE__ */ ((SkinPart2) => {
|
|
@@ -5311,7 +5310,7 @@ var slimSkinGeometries = {
|
|
|
5311
5310
|
};
|
|
5312
5311
|
|
|
5313
5312
|
// src/skin/scene/SkinObject.ts
|
|
5314
|
-
var
|
|
5313
|
+
var import_ts_deepmerge7 = __toESM(require_dist());
|
|
5315
5314
|
var SkinObject = class extends SceneObject {
|
|
5316
5315
|
constructor(options) {
|
|
5317
5316
|
super();
|
|
@@ -5319,7 +5318,7 @@ var SkinObject = class extends SceneObject {
|
|
|
5319
5318
|
this.legacy = false;
|
|
5320
5319
|
this.skinTextureWidth = 64;
|
|
5321
5320
|
this.skinTextureHeight = 64;
|
|
5322
|
-
this.options = (0,
|
|
5321
|
+
this.options = (0, import_ts_deepmerge7.default)({}, SceneObject.DEFAULT_OPTIONS, options ?? {});
|
|
5323
5322
|
}
|
|
5324
5323
|
async init() {
|
|
5325
5324
|
this.createMeshes();
|
|
@@ -5436,7 +5435,7 @@ var _MineRenderScene = class _MineRenderScene extends import_three17.Scene {
|
|
|
5436
5435
|
this.dirty = true;
|
|
5437
5436
|
}
|
|
5438
5437
|
};
|
|
5439
|
-
this.options = (0,
|
|
5438
|
+
this.options = (0, import_ts_deepmerge8.default)({}, _MineRenderScene.DEFAULT_OPTIONS, options ?? {});
|
|
5440
5439
|
}
|
|
5441
5440
|
add(...objects) {
|
|
5442
5441
|
for (const object of objects) {
|
|
@@ -5532,7 +5531,7 @@ var _MineRenderScene = class _MineRenderScene extends import_three17.Scene {
|
|
|
5532
5531
|
return this.addSceneObject(entity, () => new EntityObject(entity, options), options, parent);
|
|
5533
5532
|
}
|
|
5534
5533
|
};
|
|
5535
|
-
_MineRenderScene.DEFAULT_OPTIONS = (0,
|
|
5534
|
+
_MineRenderScene.DEFAULT_OPTIONS = (0, import_ts_deepmerge8.default)({}, {});
|
|
5536
5535
|
var MineRenderScene = _MineRenderScene;
|
|
5537
5536
|
function isMineRenderScene(obj) {
|
|
5538
5537
|
return obj.isMineRenderScene;
|
|
@@ -5540,7 +5539,7 @@ function isMineRenderScene(obj) {
|
|
|
5540
5539
|
|
|
5541
5540
|
// src/renderer/Renderer.ts
|
|
5542
5541
|
var import_three19 = require("three");
|
|
5543
|
-
var
|
|
5542
|
+
var import_ts_deepmerge9 = __toESM(require_dist());
|
|
5544
5543
|
var import_stats = __toESM(require("stats.js"));
|
|
5545
5544
|
var import_postprocessing = require("postprocessing");
|
|
5546
5545
|
|
|
@@ -6197,7 +6196,7 @@ var _Renderer = class _Renderer {
|
|
|
6197
6196
|
this._changeListener = () => {
|
|
6198
6197
|
this._dirty = true;
|
|
6199
6198
|
};
|
|
6200
|
-
this.options = (0,
|
|
6199
|
+
this.options = (0, import_ts_deepmerge9.default)({}, _Renderer.DEFAULT_OPTIONS, options ?? {});
|
|
6201
6200
|
this._animationLoop = this.animate.bind(this);
|
|
6202
6201
|
this._frameInterval = this.options.render.fpsLimit > 0 ? 1e3 / this.options.render.fpsLimit : void 0;
|
|
6203
6202
|
this._scene = this.createScene();
|
|
@@ -6246,13 +6245,13 @@ var _Renderer = class _Renderer {
|
|
|
6246
6245
|
renderer.setClearColor(0, 0);
|
|
6247
6246
|
renderer.shadowMap.enabled = true;
|
|
6248
6247
|
renderer.shadowMap.type = import_three19.PCFSoftShadowMap;
|
|
6249
|
-
renderer.
|
|
6248
|
+
renderer.outputColorSpace = import_three19.SRGBColorSpace;
|
|
6250
6249
|
renderer.setSize(this.viewWidth, this.viewHeight);
|
|
6251
6250
|
return renderer;
|
|
6252
6251
|
}
|
|
6253
6252
|
createComposer() {
|
|
6253
|
+
if (!this.options.composer.enabled) return void 0;
|
|
6254
6254
|
const composer = new import_postprocessing.EffectComposer(this.renderer);
|
|
6255
|
-
if (!this.options.composer.enabled) return composer;
|
|
6256
6255
|
composer.setSize(this.viewWidth, this.viewHeight);
|
|
6257
6256
|
composer.addPass(new import_postprocessing.RenderPass(this.scene, this.camera));
|
|
6258
6257
|
return composer;
|
|
@@ -6361,7 +6360,7 @@ var _Renderer = class _Renderer {
|
|
|
6361
6360
|
this.camera.updateProjectionMatrix();
|
|
6362
6361
|
}
|
|
6363
6362
|
this.renderer.setSize(width, height);
|
|
6364
|
-
this.composer
|
|
6363
|
+
this.composer?.setSize(width, height);
|
|
6365
6364
|
this._dirty = true;
|
|
6366
6365
|
}
|
|
6367
6366
|
//<editor-fold desc="RENDER">
|
|
@@ -6420,7 +6419,7 @@ var _Renderer = class _Renderer {
|
|
|
6420
6419
|
}
|
|
6421
6420
|
}
|
|
6422
6421
|
this._debugHelpers.length = 0;
|
|
6423
|
-
this.composer
|
|
6422
|
+
this.composer?.dispose();
|
|
6424
6423
|
this.renderer.dispose();
|
|
6425
6424
|
this.renderer.forceContextLoss();
|
|
6426
6425
|
}
|
|
@@ -6440,7 +6439,7 @@ var _Renderer = class _Renderer {
|
|
|
6440
6439
|
if (this._stats) {
|
|
6441
6440
|
this._stats.begin();
|
|
6442
6441
|
}
|
|
6443
|
-
if (this.options.composer.enabled) {
|
|
6442
|
+
if (this.options.composer.enabled && this.composer) {
|
|
6444
6443
|
this.composer.render();
|
|
6445
6444
|
} else {
|
|
6446
6445
|
this.renderer.render(this.scene, this.camera);
|
|
@@ -6482,7 +6481,7 @@ var _Renderer = class _Renderer {
|
|
|
6482
6481
|
}
|
|
6483
6482
|
///
|
|
6484
6483
|
};
|
|
6485
|
-
_Renderer.DEFAULT_OPTIONS = (0,
|
|
6484
|
+
_Renderer.DEFAULT_OPTIONS = (0, import_ts_deepmerge9.default)({}, {
|
|
6486
6485
|
camera: {
|
|
6487
6486
|
type: "perspective",
|
|
6488
6487
|
near: 1,
|