From 7d699f24bbfeeed03271dbb5b6ffc43680d9daa5 Mon Sep 17 00:00:00 2001 From: Vitaly Turovsky Date: Wed, 30 Oct 2024 08:42:27 +0300 Subject: [PATCH] fix: some areas in old world were competely white --- prismarine-viewer/viewer/lib/mesher/mesher.ts | 1 + prismarine-viewer/viewer/lib/mesher/world.ts | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/prismarine-viewer/viewer/lib/mesher/mesher.ts b/prismarine-viewer/viewer/lib/mesher/mesher.ts index 4813cfc9..35a6171b 100644 --- a/prismarine-viewer/viewer/lib/mesher/mesher.ts +++ b/prismarine-viewer/viewer/lib/mesher/mesher.ts @@ -65,6 +65,7 @@ function setSectionDirty (pos, value = true) { const softCleanup = () => { // clean block cache and loaded chunks world = new World(world.config.version) + globalThis.world = world } const handleMessage = data => { diff --git a/prismarine-viewer/viewer/lib/mesher/world.ts b/prismarine-viewer/viewer/lib/mesher/world.ts index ae65118c..2cdee1d5 100644 --- a/prismarine-viewer/viewer/lib/mesher/world.ts +++ b/prismarine-viewer/viewer/lib/mesher/world.ts @@ -47,6 +47,8 @@ export class World { } getLight (pos: Vec3, isNeighbor = false, skipMoreChecks = false, curBlockName = '') { + // for easier testing + if (!(pos instanceof Vec3)) pos = new Vec3(...pos as [number, number, number]) const { enableLighting, skyLight } = this.config if (!enableLighting) return 15 // const key = `${pos.x},${pos.y},${pos.z}` @@ -70,8 +72,10 @@ export class World { this.getLight(pos.offset(1, 0, 0), undefined, true), this.getLight(pos.offset(-1, 0, 0), undefined, true) ].filter(x => x !== 2) - const min = Math.min(...lights) - result = min + if (lights.length) { + const min = Math.min(...lights) + result = min + } } if (isNeighbor && result === 2) result = 15 // TODO return result