minerender 2.0.0-alpha.4 → 2.0.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/build.mjs +1 -1
- package/dist/bundle.js +3776 -415
- package/dist/cjs/Geometries.js +1 -1
- package/dist/cjs/Geometries.js.map +1 -1
- package/dist/cjs/Materials.js +1 -1
- package/dist/cjs/Materials.js.map +1 -1
- package/dist/cjs/Meshes.js +1 -1
- package/dist/cjs/Meshes.js.map +1 -1
- package/dist/cjs/UVMapper.js +1 -1
- package/dist/cjs/UVMapper.js.map +1 -1
- package/dist/cjs/assets/AssetKey.d.ts +1 -1
- package/dist/cjs/assets/AssetLoader.d.ts +1 -1
- package/dist/cjs/assets/AssetLoader.js +1 -1
- package/dist/cjs/assets/AssetLoader.js.map +1 -1
- package/dist/cjs/assets/BlockStates.js +2 -2
- package/dist/cjs/assets/BlockStates.js.map +1 -1
- package/dist/cjs/assets/Models.js +2 -2
- package/dist/cjs/assets/Models.js.map +1 -1
- package/dist/cjs/cache/CacheKey.d.ts +1 -1
- package/dist/cjs/cache/CacheKey.js +5 -5
- package/dist/cjs/cache/CacheKey.js.map +1 -1
- package/dist/cjs/cache/PersistentCache.js +3 -3
- package/dist/cjs/cache/PersistentCache.js.map +1 -1
- package/dist/cjs/canvas/CanvasCompat.d.ts +2 -2
- package/dist/cjs/canvas/CanvasCompat.js +5 -1
- package/dist/cjs/canvas/CanvasCompat.js.map +1 -1
- package/dist/cjs/canvas/CanvasImage.d.ts +1 -0
- package/dist/cjs/canvas/CanvasImage.js +2 -2
- package/dist/cjs/canvas/CanvasImage.js.map +1 -1
- package/dist/cjs/entity/scene/EntityObject.js +9 -5
- package/dist/cjs/entity/scene/EntityObject.js.map +1 -1
- package/dist/cjs/image/ImageLoader.js +9 -9
- package/dist/cjs/image/ImageLoader.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.js +7 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/inspector/SceneInspector.js +21 -21
- package/dist/cjs/inspector/SceneInspector.js.map +1 -1
- package/dist/cjs/instance/InstanceManager.js +1 -1
- package/dist/cjs/instance/InstanceManager.js.map +1 -1
- package/dist/cjs/instance/InstanceReference.js +3 -3
- package/dist/cjs/instance/InstanceReference.js.map +1 -1
- package/dist/cjs/lib/OrbitControls.js +5 -1
- package/dist/cjs/lib/OrbitControls.js.map +1 -1
- package/dist/cjs/model/Model.d.ts +3 -3
- package/dist/cjs/model/ModelElement.d.ts +1 -1
- package/dist/cjs/model/ModelMerger.js +2 -2
- package/dist/cjs/model/ModelMerger.js.map +1 -1
- package/dist/cjs/model/block/BlockState.d.ts +1 -1
- package/dist/cjs/model/block/BlockStateProperties.d.ts +3 -3
- package/dist/cjs/model/block/scene/BlockObject.js +16 -16
- package/dist/cjs/model/block/scene/BlockObject.js.map +1 -1
- package/dist/cjs/model/index.d.ts +5 -0
- package/dist/cjs/model/index.js +22 -0
- package/dist/cjs/model/index.js.map +1 -0
- package/dist/cjs/model/scene/ModelObject.js +11 -10
- package/dist/cjs/model/scene/ModelObject.js.map +1 -1
- package/dist/cjs/nbt/NBTHelper.js +5 -1
- package/dist/cjs/nbt/NBTHelper.js.map +1 -1
- package/dist/cjs/renderer/MineRenderScene.js +4 -4
- package/dist/cjs/renderer/MineRenderScene.js.map +1 -1
- package/dist/cjs/renderer/Renderer.d.ts +6 -3
- package/dist/cjs/renderer/Renderer.js +31 -14
- package/dist/cjs/renderer/Renderer.js.map +1 -1
- package/dist/cjs/renderer/SceneObject.js +8 -8
- package/dist/cjs/renderer/SceneObject.js.map +1 -1
- package/dist/cjs/request/Requests.js +7 -3
- package/dist/cjs/request/Requests.js.map +1 -1
- package/dist/cjs/skin/SkinGeometries.d.ts +1 -1
- package/dist/cjs/skin/SkinGeometries.js +2 -2
- package/dist/cjs/skin/SkinGeometries.js.map +1 -1
- package/dist/cjs/skin/SkinTextureCoordinates.d.ts +1 -1
- package/dist/cjs/skin/scene/SkinObject.js +1 -1
- package/dist/cjs/skin/scene/SkinObject.js.map +1 -1
- package/dist/cjs/texture/TextureAtlas.d.ts +1 -0
- package/dist/cjs/texture/TextureAtlas.js.map +1 -1
- package/dist/cjs/texture/Textures.js +6 -2
- package/dist/cjs/texture/Textures.js.map +1 -1
- package/dist/cjs/three/BufferGeometryUtils.d.ts +1 -1
- package/dist/cjs/three/index.d.ts +2 -0
- package/dist/cjs/three/index.js +19 -0
- package/dist/cjs/three/index.js.map +1 -0
- package/dist/cjs/util/BatchedExecutor.d.ts +1 -1
- package/dist/cjs/util/index.d.ts +3 -0
- package/dist/cjs/util/index.js +20 -0
- package/dist/cjs/util/index.js.map +1 -0
- package/dist/cjs/util/model.js +9 -9
- package/dist/cjs/util/model.js.map +1 -1
- package/dist/cjs/util/util.d.ts +2 -2
- package/dist/cjs/util/util.js +5 -1
- package/dist/cjs/util/util.js.map +1 -1
- package/dist/cjs/world/Chunk.js +4 -4
- package/dist/cjs/world/Chunk.js.map +1 -1
- package/dist/cjs/world/MineRenderWorld.js +2 -2
- package/dist/cjs/world/MineRenderWorld.js.map +1 -1
- package/dist/esm/assets/AssetKey.d.ts +1 -1
- package/dist/esm/assets/AssetLoader.d.ts +1 -1
- package/dist/esm/assets/AssetLoader.js.map +1 -1
- package/dist/esm/assets/BlockStates.js +1 -1
- package/dist/esm/assets/BlockStates.js.map +1 -1
- package/dist/esm/assets/Models.js +1 -1
- package/dist/esm/assets/Models.js.map +1 -1
- package/dist/esm/cache/CacheKey.d.ts +1 -1
- package/dist/esm/cache/PersistentCache.js +3 -3
- package/dist/esm/cache/PersistentCache.js.map +1 -1
- package/dist/esm/canvas/CanvasCompat.d.ts +2 -2
- package/dist/esm/canvas/CanvasImage.d.ts +1 -0
- package/dist/esm/canvas/CanvasImage.js.map +1 -1
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/instance/InstanceReference.js +3 -3
- package/dist/esm/instance/InstanceReference.js.map +1 -1
- package/dist/esm/model/Model.d.ts +3 -3
- package/dist/esm/model/ModelElement.d.ts +1 -1
- package/dist/esm/model/block/BlockState.d.ts +1 -1
- package/dist/esm/model/block/BlockStateProperties.d.ts +3 -3
- package/dist/esm/model/block/scene/BlockObject.js +1 -1
- package/dist/esm/model/block/scene/BlockObject.js.map +1 -1
- package/dist/esm/model/index.d.ts +5 -0
- package/dist/esm/model/index.js +6 -0
- package/dist/esm/model/index.js.map +1 -0
- package/dist/esm/model/scene/ModelObject.js +2 -1
- package/dist/esm/model/scene/ModelObject.js.map +1 -1
- package/dist/esm/renderer/Renderer.d.ts +6 -3
- package/dist/esm/renderer/Renderer.js +23 -6
- package/dist/esm/renderer/Renderer.js.map +1 -1
- package/dist/esm/request/Requests.js +6 -2
- package/dist/esm/request/Requests.js.map +1 -1
- package/dist/esm/skin/SkinGeometries.d.ts +1 -1
- package/dist/esm/skin/SkinTextureCoordinates.d.ts +1 -1
- package/dist/esm/texture/TextureAtlas.d.ts +1 -0
- package/dist/esm/texture/TextureAtlas.js.map +1 -1
- package/dist/esm/three/BufferGeometryUtils.d.ts +1 -1
- package/dist/esm/three/index.d.ts +2 -0
- package/dist/esm/three/index.js +3 -0
- package/dist/esm/three/index.js.map +1 -0
- package/dist/esm/util/BatchedExecutor.d.ts +1 -1
- package/dist/esm/util/index.d.ts +3 -0
- package/dist/esm/util/index.js +4 -0
- package/dist/esm/util/index.js.map +1 -0
- package/dist/esm/util/util.d.ts +2 -2
- package/package.json +9 -28
- package/src/assets/AssetLoader.ts +1 -1
- package/src/assets/BlockStates.ts +1 -1
- package/src/assets/Models.ts +1 -1
- package/src/canvas/CanvasImage.ts +1 -0
- package/src/index.ts +2 -0
- package/src/instance/InstanceReference.ts +3 -3
- package/src/model/block/scene/BlockObject.ts +1 -1
- package/src/model/index.ts +5 -0
- package/src/model/scene/ModelObject.ts +2 -1
- package/src/renderer/Renderer.ts +43 -26
- package/src/request/Requests.ts +4 -1
- package/src/texture/TextureAtlas.ts +1 -0
- package/src/three/OrbitControls.d.ts +1 -1
- package/src/three/index.ts +2 -0
- package/src/util/index.ts +3 -0
- package/gulpfile.js +0 -77
|
@@ -27,7 +27,7 @@ export class InstanceReference<T extends Instanceable> implements Transformable
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
setPosition(position: Vector3): void {
|
|
30
|
-
console.log("InstanceReference#setPosition",position)
|
|
30
|
+
// console.log("InstanceReference#setPosition",position)
|
|
31
31
|
this.instanceable.setPositionAt(this.index, position);
|
|
32
32
|
}
|
|
33
33
|
|
|
@@ -36,12 +36,12 @@ export class InstanceReference<T extends Instanceable> implements Transformable
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
setRotation(rotation: Euler): void {
|
|
39
|
-
console.log("InstanceReference#setRotation",rotation)
|
|
39
|
+
// console.log("InstanceReference#setRotation",rotation)
|
|
40
40
|
this.instanceable.setRotationAt(this.index, rotation);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
getRotation(): Euler {
|
|
44
|
-
console.log("InstanceReference#getRotation")
|
|
44
|
+
// console.log("InstanceReference#getRotation")
|
|
45
45
|
return this.instanceable.getRotationAt(this.index);
|
|
46
46
|
}
|
|
47
47
|
|
|
@@ -37,7 +37,7 @@ export class BlockObject extends SceneObject {
|
|
|
37
37
|
private _models: (ModelObject | InstanceReference<ModelObject>)[] = [];
|
|
38
38
|
|
|
39
39
|
constructor(readonly blockState: BlockState, options?: Partial<BlockObjectOptions>) {
|
|
40
|
-
super();
|
|
40
|
+
super(options);
|
|
41
41
|
this.options = merge({}, BlockObject.DEFAULT_OPTIONS, options ?? {});
|
|
42
42
|
//TODO
|
|
43
43
|
}
|
|
@@ -35,8 +35,9 @@ export class ModelObject extends SceneObject {
|
|
|
35
35
|
private meshesCreated: boolean = false;
|
|
36
36
|
|
|
37
37
|
constructor(readonly originalModel: Model, options?: Partial<ModelObjectOptions>) {
|
|
38
|
-
super();
|
|
38
|
+
super(options);
|
|
39
39
|
this.options = merge({}, ModelObject.DEFAULT_OPTIONS, options ?? {});
|
|
40
|
+
console.log(this.options);
|
|
40
41
|
}
|
|
41
42
|
|
|
42
43
|
async init(): Promise<void> {
|
package/src/renderer/Renderer.ts
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import {AxesHelper, Camera, EventDispatcher, GridHelper, OrthographicCamera, PCFSoftShadowMap, PerspectiveCamera, Scene, Vector3, warn, WebGLRenderer} from "three";
|
|
2
|
+
import {MineRenderScene} from "./MineRenderScene";
|
|
3
3
|
import merge from "ts-deepmerge";
|
|
4
4
|
import Stats from "stats.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
5
|
+
import {DeepPartial, isVector3, Maybe} from "../util/util";
|
|
6
|
+
import {EffectComposer} from "three/examples/jsm/postprocessing/EffectComposer";
|
|
7
|
+
import {SSAARenderPass} from "three/examples/jsm/postprocessing/SSAARenderPass";
|
|
8
|
+
import {ShaderPass} from "three/examples/jsm/postprocessing/ShaderPass";
|
|
9
|
+
import {CopyShader} from "three/examples/jsm/shaders/CopyShader";
|
|
10
|
+
import {RenderPass} from "three/examples/jsm/postprocessing/RenderPass";
|
|
11
|
+
import {SAOPass} from "three/examples/jsm/postprocessing/SAOPass";
|
|
12
|
+
import {SSAOPass} from "three/examples/jsm/postprocessing/SSAOPass";
|
|
13
|
+
import {FXAAShader} from "three/examples/jsm/shaders/FXAAShader";
|
|
14
|
+
import {SMAAPass} from "three/examples/jsm/postprocessing/SMAAPass";
|
|
15
|
+
import {SSAOShader} from "three/examples/jsm/shaders/SSAOShader";
|
|
16
|
+
import {BloomPass} from "three/examples/jsm/postprocessing/BloomPass";
|
|
17
|
+
import {ToonShader1, ToonShader2} from "three/examples/jsm/shaders/ToonShader";
|
|
18
|
+
import {isTripleArray, TripleArray} from "../model/Model";
|
|
19
|
+
import {isOrthographicCamera, isPerspectiveCamera} from "../util/three";
|
|
20
20
|
|
|
21
21
|
export class Renderer {
|
|
22
22
|
|
|
@@ -56,7 +56,7 @@ export class Renderer {
|
|
|
56
56
|
});
|
|
57
57
|
public readonly options: RendererOptions;
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
protected _element?: HTMLElement;
|
|
60
60
|
|
|
61
61
|
protected _scene: MineRenderScene;
|
|
62
62
|
protected _camera: Camera;
|
|
@@ -73,9 +73,8 @@ export class Renderer {
|
|
|
73
73
|
protected _animationFrame?: number = undefined;
|
|
74
74
|
protected _resizeListener?: () => void = undefined;
|
|
75
75
|
|
|
76
|
-
constructor(options?: DeepPartial<RendererOptions
|
|
76
|
+
constructor(options?: DeepPartial<RendererOptions>) {
|
|
77
77
|
this.options = merge({}, Renderer.DEFAULT_OPTIONS, options ?? {});
|
|
78
|
-
this.element = element;
|
|
79
78
|
|
|
80
79
|
this._animationLoop = this.animate.bind(this);
|
|
81
80
|
this._fpsTimer = this.options.render.fpsLimit > 0 ? (1000 / this.options.render.fpsLimit) : undefined;
|
|
@@ -185,7 +184,7 @@ export class Renderer {
|
|
|
185
184
|
|
|
186
185
|
public init() {
|
|
187
186
|
if (typeof window["__THREE_DEVTOOLS__"] !== 'undefined') {
|
|
188
|
-
window["__THREE_DEVTOOLS__"].dispatchEvent(new CustomEvent('observe', {
|
|
187
|
+
window["__THREE_DEVTOOLS__"].dispatchEvent(new CustomEvent('observe', {detail: this.scene}));
|
|
189
188
|
}
|
|
190
189
|
|
|
191
190
|
/// DEBUG
|
|
@@ -228,16 +227,29 @@ export class Renderer {
|
|
|
228
227
|
};
|
|
229
228
|
window.addEventListener('resize', this._resizeListener);//TODO: remove listener
|
|
230
229
|
}
|
|
230
|
+
}
|
|
231
231
|
|
|
232
|
-
|
|
233
|
-
this.
|
|
232
|
+
public get element(): Maybe<HTMLElement> {
|
|
233
|
+
return this._element;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
public appendTo(element: HTMLElement): void {
|
|
237
|
+
this._element = element;
|
|
238
|
+
this._element.appendChild(this.renderer.domElement);
|
|
239
|
+
if (this.viewWidth == 0) {
|
|
240
|
+
console.warn('0 element width');
|
|
241
|
+
}
|
|
242
|
+
if (this.viewHeight == 0) {
|
|
243
|
+
console.warn('0 element height');
|
|
244
|
+
}
|
|
245
|
+
this.resize(this.viewWidth, this.viewHeight);
|
|
234
246
|
}
|
|
235
247
|
|
|
236
248
|
/**
|
|
237
249
|
* Register an EventDispatcher which may update the scene or renderer in order to redraw the scene
|
|
238
250
|
*/
|
|
239
251
|
public registerEventDispatcher(dispatcher: EventDispatcher, changeEvent: string = 'change') {
|
|
240
|
-
dispatcher.addEventListener(changeEvent,event=>{
|
|
252
|
+
dispatcher.addEventListener(changeEvent, event => {
|
|
241
253
|
this._dirty = true;
|
|
242
254
|
})
|
|
243
255
|
}
|
|
@@ -320,6 +332,11 @@ export class Renderer {
|
|
|
320
332
|
|
|
321
333
|
//</editor-fold>
|
|
322
334
|
|
|
335
|
+
public toImage(): string {
|
|
336
|
+
//TODO: mime type, trim transparent pixels
|
|
337
|
+
return this.renderer.domElement.toDataURL();
|
|
338
|
+
}
|
|
339
|
+
|
|
323
340
|
///
|
|
324
341
|
|
|
325
342
|
protected get attachedToBody() {
|
|
@@ -327,11 +344,11 @@ export class Renderer {
|
|
|
327
344
|
}
|
|
328
345
|
|
|
329
346
|
protected get viewWidth() {
|
|
330
|
-
return this.attachedToBody ? window.innerWidth : this.element
|
|
347
|
+
return this.attachedToBody ? window.innerWidth : this.element?.offsetWidth || 0;
|
|
331
348
|
}
|
|
332
349
|
|
|
333
350
|
protected get viewHeight() {
|
|
334
|
-
return this.attachedToBody ? window.innerHeight : this.element
|
|
351
|
+
return this.attachedToBody ? window.innerHeight : this.element?.offsetHeight || 0;
|
|
335
352
|
}
|
|
336
353
|
|
|
337
354
|
public get scene(): MineRenderScene {
|
package/src/request/Requests.ts
CHANGED
|
@@ -11,9 +11,12 @@ if (typeof window === "undefined") {
|
|
|
11
11
|
|
|
12
12
|
export class Requests {
|
|
13
13
|
|
|
14
|
-
private static axiosInstance: AxiosInstance = axios.create({
|
|
14
|
+
private static axiosInstance: AxiosInstance = axios.create({
|
|
15
|
+
timeout: 5000
|
|
16
|
+
});
|
|
15
17
|
|
|
16
18
|
private static mcAssetInstance: AxiosInstance = axios.create({
|
|
19
|
+
timeout: 5000
|
|
17
20
|
})
|
|
18
21
|
|
|
19
22
|
private static mcAssetRequestQueue: JobQueue<AxiosRequestConfig, AxiosResponse>
|
package/gulpfile.js
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
const fs = require("fs");
|
|
2
|
-
const path = require("path");
|
|
3
|
-
|
|
4
|
-
const gulp = require('gulp');
|
|
5
|
-
const source = require('vinyl-source-stream');
|
|
6
|
-
const buffer = require('vinyl-buffer');
|
|
7
|
-
const sourcemaps = require('gulp-sourcemaps');
|
|
8
|
-
|
|
9
|
-
const browserify = require('browserify');
|
|
10
|
-
const watchify = require('watchify');
|
|
11
|
-
const tsify = require('tsify');
|
|
12
|
-
const babelify = require('babelify');
|
|
13
|
-
|
|
14
|
-
function bundle(watch) {
|
|
15
|
-
let bundler = browserify('src/index.ts', Object.assign({}, watchify.args,
|
|
16
|
-
{
|
|
17
|
-
cache: {},
|
|
18
|
-
packageCache: {},
|
|
19
|
-
debug: true,
|
|
20
|
-
standalone: "MineRender",
|
|
21
|
-
insertGlobals: true,
|
|
22
|
-
}
|
|
23
|
-
))
|
|
24
|
-
.plugin(tsify, {
|
|
25
|
-
project: 'tsconfig.json'
|
|
26
|
-
})
|
|
27
|
-
.transform(babelify, {
|
|
28
|
-
extensions: ['.tsc', '.ts', '.js'],
|
|
29
|
-
sourceMaps: true,
|
|
30
|
-
global: true,
|
|
31
|
-
compact: false,
|
|
32
|
-
plugins: ['@babel/plugin-transform-modules-commonjs']
|
|
33
|
-
})
|
|
34
|
-
bundler.on('log', l => console.log(l));
|
|
35
|
-
|
|
36
|
-
bundler.on('error', function (error) {
|
|
37
|
-
console.error("bundler error (1)");
|
|
38
|
-
console.error(error);
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
function rebundle() {
|
|
42
|
-
console.log("bundling...")
|
|
43
|
-
console.time("bundle")
|
|
44
|
-
return bundler
|
|
45
|
-
|
|
46
|
-
.bundle()
|
|
47
|
-
.on('error', function (error) {
|
|
48
|
-
console.error("bundler error (2)");
|
|
49
|
-
console.error(error);
|
|
50
|
-
})
|
|
51
|
-
|
|
52
|
-
.pipe(source('bundle.js'))
|
|
53
|
-
.pipe(buffer())
|
|
54
|
-
.pipe(sourcemaps.init({loadMaps: true}))
|
|
55
|
-
.pipe(sourcemaps.write('./'))
|
|
56
|
-
.pipe(gulp.dest('dist'))
|
|
57
|
-
|
|
58
|
-
.on('end', function () {
|
|
59
|
-
console.timeEnd("bundle");
|
|
60
|
-
console.log("bundle done!")
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
if (watch) {
|
|
65
|
-
// bundler = watchify(bundler);
|
|
66
|
-
bundler.plugin(watchify)
|
|
67
|
-
bundler.on('update', rebundle);
|
|
68
|
-
}
|
|
69
|
-
return rebundle();
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
gulp.task('bundle', function () {
|
|
73
|
-
return bundle(false);
|
|
74
|
-
});
|
|
75
|
-
gulp.task('bundle:w', function () {
|
|
76
|
-
return bundle(true);
|
|
77
|
-
});
|