minerender 2.0.0-alpha.5 → 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.
Files changed (155) hide show
  1. package/build.mjs +1 -1
  2. package/dist/bundle.js +3716 -368
  3. package/dist/cjs/Geometries.js +1 -1
  4. package/dist/cjs/Geometries.js.map +1 -1
  5. package/dist/cjs/Materials.js +1 -1
  6. package/dist/cjs/Materials.js.map +1 -1
  7. package/dist/cjs/Meshes.js +1 -1
  8. package/dist/cjs/Meshes.js.map +1 -1
  9. package/dist/cjs/UVMapper.js +1 -1
  10. package/dist/cjs/UVMapper.js.map +1 -1
  11. package/dist/cjs/assets/AssetKey.d.ts +1 -1
  12. package/dist/cjs/assets/AssetLoader.d.ts +1 -1
  13. package/dist/cjs/assets/AssetLoader.js +1 -1
  14. package/dist/cjs/assets/AssetLoader.js.map +1 -1
  15. package/dist/cjs/assets/BlockStates.js +1 -1
  16. package/dist/cjs/assets/BlockStates.js.map +1 -1
  17. package/dist/cjs/assets/Models.js +1 -1
  18. package/dist/cjs/assets/Models.js.map +1 -1
  19. package/dist/cjs/cache/CacheKey.d.ts +1 -1
  20. package/dist/cjs/cache/CacheKey.js +5 -5
  21. package/dist/cjs/cache/CacheKey.js.map +1 -1
  22. package/dist/cjs/cache/PersistentCache.js +3 -3
  23. package/dist/cjs/cache/PersistentCache.js.map +1 -1
  24. package/dist/cjs/canvas/CanvasCompat.d.ts +2 -2
  25. package/dist/cjs/canvas/CanvasCompat.js +5 -1
  26. package/dist/cjs/canvas/CanvasCompat.js.map +1 -1
  27. package/dist/cjs/canvas/CanvasImage.d.ts +1 -0
  28. package/dist/cjs/canvas/CanvasImage.js +2 -2
  29. package/dist/cjs/canvas/CanvasImage.js.map +1 -1
  30. package/dist/cjs/entity/scene/EntityObject.js +9 -5
  31. package/dist/cjs/entity/scene/EntityObject.js.map +1 -1
  32. package/dist/cjs/image/ImageLoader.js +9 -9
  33. package/dist/cjs/image/ImageLoader.js.map +1 -1
  34. package/dist/cjs/index.d.ts +2 -0
  35. package/dist/cjs/index.js +7 -1
  36. package/dist/cjs/index.js.map +1 -1
  37. package/dist/cjs/inspector/SceneInspector.js +21 -21
  38. package/dist/cjs/inspector/SceneInspector.js.map +1 -1
  39. package/dist/cjs/instance/InstanceManager.js +1 -1
  40. package/dist/cjs/instance/InstanceManager.js.map +1 -1
  41. package/dist/cjs/instance/InstanceReference.js +3 -3
  42. package/dist/cjs/instance/InstanceReference.js.map +1 -1
  43. package/dist/cjs/lib/OrbitControls.js +5 -1
  44. package/dist/cjs/lib/OrbitControls.js.map +1 -1
  45. package/dist/cjs/model/Model.d.ts +3 -3
  46. package/dist/cjs/model/ModelElement.d.ts +1 -1
  47. package/dist/cjs/model/ModelMerger.js +2 -2
  48. package/dist/cjs/model/ModelMerger.js.map +1 -1
  49. package/dist/cjs/model/block/BlockState.d.ts +1 -1
  50. package/dist/cjs/model/block/BlockStateProperties.d.ts +3 -3
  51. package/dist/cjs/model/block/scene/BlockObject.js +16 -16
  52. package/dist/cjs/model/block/scene/BlockObject.js.map +1 -1
  53. package/dist/cjs/model/index.d.ts +5 -0
  54. package/dist/cjs/model/index.js +22 -0
  55. package/dist/cjs/model/index.js.map +1 -0
  56. package/dist/cjs/model/scene/ModelObject.js +11 -10
  57. package/dist/cjs/model/scene/ModelObject.js.map +1 -1
  58. package/dist/cjs/nbt/NBTHelper.js +5 -1
  59. package/dist/cjs/nbt/NBTHelper.js.map +1 -1
  60. package/dist/cjs/renderer/MineRenderScene.js +4 -4
  61. package/dist/cjs/renderer/MineRenderScene.js.map +1 -1
  62. package/dist/cjs/renderer/Renderer.d.ts +6 -3
  63. package/dist/cjs/renderer/Renderer.js +31 -14
  64. package/dist/cjs/renderer/Renderer.js.map +1 -1
  65. package/dist/cjs/renderer/SceneObject.js +8 -8
  66. package/dist/cjs/renderer/SceneObject.js.map +1 -1
  67. package/dist/cjs/request/Requests.js +7 -3
  68. package/dist/cjs/request/Requests.js.map +1 -1
  69. package/dist/cjs/skin/SkinGeometries.d.ts +1 -1
  70. package/dist/cjs/skin/SkinGeometries.js +2 -2
  71. package/dist/cjs/skin/SkinGeometries.js.map +1 -1
  72. package/dist/cjs/skin/SkinTextureCoordinates.d.ts +1 -1
  73. package/dist/cjs/skin/scene/SkinObject.js +1 -1
  74. package/dist/cjs/skin/scene/SkinObject.js.map +1 -1
  75. package/dist/cjs/texture/TextureAtlas.d.ts +1 -0
  76. package/dist/cjs/texture/TextureAtlas.js.map +1 -1
  77. package/dist/cjs/texture/Textures.js +6 -2
  78. package/dist/cjs/texture/Textures.js.map +1 -1
  79. package/dist/cjs/three/BufferGeometryUtils.d.ts +1 -1
  80. package/dist/cjs/three/index.d.ts +2 -0
  81. package/dist/cjs/three/index.js +19 -0
  82. package/dist/cjs/three/index.js.map +1 -0
  83. package/dist/cjs/util/BatchedExecutor.d.ts +1 -1
  84. package/dist/cjs/util/index.d.ts +3 -0
  85. package/dist/cjs/util/index.js +20 -0
  86. package/dist/cjs/util/index.js.map +1 -0
  87. package/dist/cjs/util/model.js +9 -9
  88. package/dist/cjs/util/model.js.map +1 -1
  89. package/dist/cjs/util/util.d.ts +2 -2
  90. package/dist/cjs/util/util.js +5 -1
  91. package/dist/cjs/util/util.js.map +1 -1
  92. package/dist/cjs/world/Chunk.js +4 -4
  93. package/dist/cjs/world/Chunk.js.map +1 -1
  94. package/dist/cjs/world/MineRenderWorld.js +2 -2
  95. package/dist/cjs/world/MineRenderWorld.js.map +1 -1
  96. package/dist/esm/assets/AssetKey.d.ts +1 -1
  97. package/dist/esm/assets/AssetLoader.d.ts +1 -1
  98. package/dist/esm/assets/AssetLoader.js.map +1 -1
  99. package/dist/esm/assets/BlockStates.js.map +1 -1
  100. package/dist/esm/assets/Models.js.map +1 -1
  101. package/dist/esm/cache/CacheKey.d.ts +1 -1
  102. package/dist/esm/cache/PersistentCache.js +3 -3
  103. package/dist/esm/cache/PersistentCache.js.map +1 -1
  104. package/dist/esm/canvas/CanvasCompat.d.ts +2 -2
  105. package/dist/esm/canvas/CanvasImage.d.ts +1 -0
  106. package/dist/esm/canvas/CanvasImage.js.map +1 -1
  107. package/dist/esm/index.d.ts +2 -0
  108. package/dist/esm/index.js +2 -0
  109. package/dist/esm/index.js.map +1 -1
  110. package/dist/esm/instance/InstanceReference.js +3 -3
  111. package/dist/esm/instance/InstanceReference.js.map +1 -1
  112. package/dist/esm/model/Model.d.ts +3 -3
  113. package/dist/esm/model/ModelElement.d.ts +1 -1
  114. package/dist/esm/model/block/BlockState.d.ts +1 -1
  115. package/dist/esm/model/block/BlockStateProperties.d.ts +3 -3
  116. package/dist/esm/model/block/scene/BlockObject.js +1 -1
  117. package/dist/esm/model/block/scene/BlockObject.js.map +1 -1
  118. package/dist/esm/model/index.d.ts +5 -0
  119. package/dist/esm/model/index.js +6 -0
  120. package/dist/esm/model/index.js.map +1 -0
  121. package/dist/esm/model/scene/ModelObject.js +2 -1
  122. package/dist/esm/model/scene/ModelObject.js.map +1 -1
  123. package/dist/esm/renderer/Renderer.d.ts +6 -3
  124. package/dist/esm/renderer/Renderer.js +23 -6
  125. package/dist/esm/renderer/Renderer.js.map +1 -1
  126. package/dist/esm/request/Requests.js +6 -2
  127. package/dist/esm/request/Requests.js.map +1 -1
  128. package/dist/esm/skin/SkinGeometries.d.ts +1 -1
  129. package/dist/esm/skin/SkinTextureCoordinates.d.ts +1 -1
  130. package/dist/esm/texture/TextureAtlas.d.ts +1 -0
  131. package/dist/esm/texture/TextureAtlas.js.map +1 -1
  132. package/dist/esm/three/BufferGeometryUtils.d.ts +1 -1
  133. package/dist/esm/three/index.d.ts +2 -0
  134. package/dist/esm/three/index.js +3 -0
  135. package/dist/esm/three/index.js.map +1 -0
  136. package/dist/esm/util/BatchedExecutor.d.ts +1 -1
  137. package/dist/esm/util/index.d.ts +3 -0
  138. package/dist/esm/util/index.js +4 -0
  139. package/dist/esm/util/index.js.map +1 -0
  140. package/dist/esm/util/util.d.ts +2 -2
  141. package/package.json +8 -27
  142. package/src/assets/AssetLoader.ts +1 -1
  143. package/src/canvas/CanvasImage.ts +1 -0
  144. package/src/index.ts +2 -0
  145. package/src/instance/InstanceReference.ts +3 -3
  146. package/src/model/block/scene/BlockObject.ts +1 -1
  147. package/src/model/index.ts +5 -0
  148. package/src/model/scene/ModelObject.ts +2 -1
  149. package/src/renderer/Renderer.ts +43 -26
  150. package/src/request/Requests.ts +4 -1
  151. package/src/texture/TextureAtlas.ts +1 -0
  152. package/src/three/OrbitControls.d.ts +1 -1
  153. package/src/three/index.ts +2 -0
  154. package/src/util/index.ts +3 -0
  155. package/gulpfile.js +0 -77
@@ -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> {
@@ -1,22 +1,22 @@
1
- import { AxesHelper, Camera, EventDispatcher, GridHelper, OrthographicCamera, PCFSoftShadowMap, PerspectiveCamera, Scene, Vector3, WebGLRenderer } from "three";
2
- import { MineRenderScene } from "./MineRenderScene";
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 { DeepPartial, isVector3 } 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";
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
- public readonly element: HTMLElement;
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>, element = document.body) {
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', { detail: this.scene }));
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
- // Add the canvas!
233
- this.element.appendChild(this.renderer.domElement);
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.offsetWidth;
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.offsetHeight;
351
+ return this.attachedToBody ? window.innerHeight : this.element?.offsetHeight || 0;
335
352
  }
336
353
 
337
354
  public get scene(): MineRenderScene {
@@ -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>
@@ -1,3 +1,4 @@
1
+ import {ImageData} from "canvas";
1
2
  import { CanvasImage } from "../canvas/CanvasImage";
2
3
  import { DoubleArray, Model } from "../model/Model";
3
4
  import { AnimatorFunction } from "../AnimatorFunction";
@@ -1,4 +1,4 @@
1
- import { Camera, MOUSE, TOUCH, Vector3 } from '../../../src/Three';
1
+ import { Camera, MOUSE, TOUCH, Vector3 } from 'three';
2
2
 
3
3
  export class OrbitControls {
4
4
  constructor(object: Camera, domElement?: HTMLElement);
@@ -0,0 +1,2 @@
1
+ export * from './BufferGeometryUtils'
2
+ export * from './OrbitControls'
@@ -0,0 +1,3 @@
1
+ export * from './util'
2
+ export * from './BatchedExecutor'
3
+ export * from './three'
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
- });