From f89530438001e113be6d2abc1d3b7249edfd604b Mon Sep 17 00:00:00 2001 From: Vitaly Turovsky Date: Mon, 31 Mar 2025 13:32:40 +0300 Subject: [PATCH] add debug method and fix f3 custom block name display --- renderer/viewer/lib/mesher/mesher.ts | 7 +++++++ renderer/viewer/lib/worldrendererCommon.ts | 18 ++++++++++++++++++ src/react/DebugOverlay.tsx | 2 +- 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/renderer/viewer/lib/mesher/mesher.ts b/renderer/viewer/lib/mesher/mesher.ts index 42432a6d..01a89fd8 100644 --- a/renderer/viewer/lib/mesher/mesher.ts +++ b/renderer/viewer/lib/mesher/mesher.ts @@ -141,6 +141,13 @@ const handleMessage = data => { break } + case 'getCustomBlockModel': { + const pos = new Vec3(data.pos.x, data.pos.y, data.pos.z) + const chunkKey = `${Math.floor(pos.x / 16) * 16},${Math.floor(pos.z / 16) * 16}` + const customBlockModel = world.customBlockModels.get(chunkKey)?.[`${pos.x},${pos.y},${pos.z}`] + global.postMessage({ type: 'customBlockModel', chunkKey, customBlockModel }) + break + } // No default } } diff --git a/renderer/viewer/lib/worldrendererCommon.ts b/renderer/viewer/lib/worldrendererCommon.ts index c0a0ff8d..c91bf066 100644 --- a/renderer/viewer/lib/worldrendererCommon.ts +++ b/renderer/viewer/lib/worldrendererCommon.ts @@ -735,6 +735,24 @@ export abstract class WorldRendererCommon return hash + 1 } + async debugGetWorkerCustomBlockModel (pos: Vec3) { + const data = [] as Array> + for (const worker of this.workers) { + data.push(new Promise((resolve) => { + worker.addEventListener('message', (e) => { + if (e.data.type === 'customBlockModel') { + resolve(e.data.customBlockModel) + } + }) + })) + worker.postMessage({ + type: 'getCustomBlockModel', + pos + }) + } + return Promise.all(data) + } + setSectionDirty (pos: Vec3, value = true, useChangeWorker = false) { // value false is used for unloading chunks if (this.viewDistance === -1) throw new Error('viewDistance not set') this.reactiveState.world.mesherWork = true diff --git a/src/react/DebugOverlay.tsx b/src/react/DebugOverlay.tsx index 26f341f4..1aff4a0e 100644 --- a/src/react/DebugOverlay.tsx +++ b/src/react/DebugOverlay.tsx @@ -141,7 +141,7 @@ export default () => { setBlockInfo(null) return } - const { customBlockName, modelInfo } = await getThreeJsRendererMethods()?.getBlockInfo(pos, block.stateId) ?? {} + const { customBlockName, modelInfo } = await getThreeJsRendererMethods()?.getBlockInfo(block.position, block.stateId) ?? {} setBlockInfo({ customBlockName, modelInfo }) }, 300)