Skip to content

Commit 1534f5b

Browse files
committed
release: 4.7.0 with BabylonJS 6 support
1 parent e28537a commit 1534f5b

File tree

6 files changed

+1820
-1261
lines changed

6 files changed

+1820
-1261
lines changed
Lines changed: 280 additions & 279 deletions
Large diffs are not rendered by default.

.yarnrc.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ plugins:
44
- path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
55
spec: "@yarnpkg/plugin-interactive-tools"
66

7-
yarnPath: .yarn/releases/yarn-3.5.0.cjs
7+
yarnPath: .yarn/releases/yarn-3.6.1.cjs

package.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@enginehub/schematicwebviewer",
3-
"version": "4.6.0",
3+
"version": "4.7.0",
44
"description": "A web viewer for modern Minecraft schematics",
55
"main": "dist/cjs/index.js",
66
"module": "dist/esm/index.js",
@@ -29,7 +29,7 @@
2929
"homepage": "https://github.com/EngineHub/SchematicWebViewer#readme",
3030
"dependencies": {
3131
"@enginehub/schematicjs": "^0.9.1",
32-
"babylonjs": "5.53.0",
32+
"babylonjs": "6.13.0",
3333
"buffer": "^6.0.3",
3434
"deepmerge": "^4.3.1",
3535
"gzip-js": "^0.3.2",
@@ -40,13 +40,13 @@
4040
"@types/gzip-js": "^0.3.3",
4141
"@typescript-eslint/eslint-plugin": "^5.57.0",
4242
"@typescript-eslint/parser": "^5.57.0",
43-
"eslint": "^8.37.0",
43+
"eslint": "^8.45.0",
4444
"eslint-config-prettier": "^8.8.0",
45-
"eslint-plugin-prettier": "^4.2.1",
46-
"parcel": "^2.8.3",
47-
"prettier": "^2.8.7",
45+
"eslint-plugin-prettier": "^5.0.0",
46+
"parcel": "^2.9.3",
47+
"prettier": "^3.0.0",
4848
"prettier-eslint": "^15.0.1",
49-
"typescript": "^5.0.3"
49+
"typescript": "^5.1.6"
5050
},
5151
"browserslist": [
5252
"last 1 Chrome version"
@@ -55,5 +55,5 @@
5555
"process": false
5656
},
5757
"sideEffects": false,
58-
"packageManager": "yarn@3.5.0"
58+
"packageManager": "yarn@3.6.1"
5959
}

src/renderer/model/loader.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ export function getModelLoader(resourceLoader: ResourceLoader): ModelLoader {
343343
number,
344344
number,
345345
number,
346-
number
346+
number,
347347
];
348348
uvs.push(new Vector4(...faceData.uv));
349349
}
@@ -361,6 +361,7 @@ export function getModelLoader(resourceLoader: ResourceLoader): ModelLoader {
361361
},
362362
scene
363363
);
364+
box.doNotSyncBoundingInfo = true;
364365

365366
const subMeshes = [];
366367
const verticesCount = box.getTotalVertices();

src/renderer/renderer.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import {
2121
Color3,
2222
Color4,
2323
Mesh,
24+
ScenePerformancePriority,
2425
} from 'babylonjs';
2526
import { loadBlockStateDefinition } from './model/parser';
2627
import { addArrowToScene, addBarsToScene } from './shapes';
@@ -79,7 +80,11 @@ export async function renderSchematic(
7980

8081
const scene = new Scene(engine, {
8182
useGeometryUniqueIdsMap: true,
83+
useClonedMeshMap: true,
8284
});
85+
scene.performancePriority = ScenePerformancePriority.Intermediate;
86+
scene.renderingManager.maintainStateBetweenFrames = true;
87+
scene.skipFrustumClipping = true;
8388

8489
scene.ambientColor = new Color3(0.5, 0.5, 0.5);
8590
if (backgroundColor !== 'transparent') {
@@ -159,11 +164,12 @@ export async function renderSchematic(
159164

160165
Mesh.INSTANCEDMESH_SORT_TRANSPARENT = true;
161166

167+
scene.blockMaterialDirtyMechanism = true;
162168
for (const pos of loadedSchematic) {
163169
const { x, y, z } = pos;
164170
const block = loadedSchematic.getBlock(pos);
165171

166-
if (!block) {
172+
if (!block || INVISIBLE_BLOCKS.has(block.type)) {
167173
continue;
168174
}
169175

@@ -208,6 +214,7 @@ export async function renderSchematic(
208214
scene.addMesh(mesh);
209215
}
210216
}
217+
scene.blockMaterialDirtyMechanism = false;
211218

212219
if (renderArrow) {
213220
addArrowToScene(scene, cameraOffset);

0 commit comments

Comments
 (0)