minecraft-renderer 0.1.49 → 0.1.50

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "minecraft-renderer",
3
- "version": "0.1.49",
3
+ "version": "0.1.50",
4
4
  "description": "The most Modular Minecraft world renderer with Three.js WebGL backend",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -7,6 +7,7 @@
7
7
  import { subscribe } from 'valtio/vanilla'
8
8
  import type { AppViewer } from './appViewer'
9
9
  import type { RendererStorageOptions } from '../three/menuBackground/defaultOptions'
10
+ import { rendererShaderCubeDebugModeToValue } from '../three/menuBackground/defaultOptions'
10
11
  import type { MenuBackgroundOptions } from '../three/menuBackground/types'
11
12
  import type { MenuBackgroundRenderer } from '../three/menuBackground/renderer'
12
13
  import { menuBackgroundSpeedToMultiplier } from '../three/menuBackground/config'
@@ -171,6 +172,7 @@ export function applyRendererOptions(
171
172
  cfg.starfield = o.starfieldRendering
172
173
  cfg.defaultSkybox = o.defaultSkybox
173
174
  cfg.fov = o.fov
175
+ cfg.shaderCubeDebugMode = rendererShaderCubeDebugModeToValue(o.rendererShaderCubeDebugMode)
174
176
  }
175
177
 
176
178
  /** World-view + hand/camera options (call when WorldView is ready). */
@@ -26,6 +26,26 @@ export type RendererMesherPipeline = 'wasm' | 'legacy-js'
26
26
 
27
27
  export type RendererGpuPreference = 'default' | 'high-performance' | 'low-power'
28
28
 
29
+ export type RendererShaderCubeDebugMode =
30
+ | 'off'
31
+ | 'holes'
32
+ | 'texIndex'
33
+ | 'faces'
34
+ | 'atlasAlpha'
35
+
36
+ const SHADER_CUBE_DEBUG_MODE_TO_VALUE: Record<RendererShaderCubeDebugMode, number> = {
37
+ off: 0,
38
+ holes: 1,
39
+ texIndex: 2,
40
+ faces: 3,
41
+ atlasAlpha: 4,
42
+ }
43
+
44
+ /** Maps stored option → `inWorldRenderingConfig.shaderCubeDebugMode` (0–4). */
45
+ export function rendererShaderCubeDebugModeToValue(mode: RendererShaderCubeDebugMode): number {
46
+ return SHADER_CUBE_DEBUG_MODE_TO_VALUE[mode]
47
+ }
48
+
29
49
  /** Maps stored `gpuPreference` to WebGL `powerPreference` (undefined = browser default). */
30
50
  export function gpuPreferenceToWebGLPowerPreference(
31
51
  preference: RendererGpuPreference
@@ -54,6 +74,7 @@ export const RENDERER_DEFAULT_OPTIONS = {
54
74
  rendererPerfDebugOverlay: false as boolean,
55
75
  disableBlockEntityTextures: false as boolean,
56
76
  rendererMesher: 'wasm' as RendererMesherPipeline,
77
+ rendererShaderCubeDebugMode: 'off' as RendererShaderCubeDebugMode,
57
78
  showChunkBorders: false as boolean,
58
79
  renderEntities: true as boolean,
59
80
  renderDebug: 'basic' as 'none' | 'basic' | 'advanced',
@@ -166,6 +187,17 @@ export const RENDERER_OPTIONS_META: Partial<Record<RendererDefaultOptionKey, Ren
166
187
  tooltip: 'WASM is faster. Use JS if WASM is not working. Requires reload.',
167
188
  requiresRestart: true
168
189
  },
190
+ rendererShaderCubeDebugMode: {
191
+ text: 'Shader cube debug',
192
+ tooltip: 'Instanced cube path visualization (requires shader cubes enabled).',
193
+ possibleValues: [
194
+ ['off', 'Off'],
195
+ ['holes', 'Hole test (red)'],
196
+ ['texIndex', 'Tile index colors'],
197
+ ['faces', 'Face id colors'],
198
+ ['atlasAlpha', 'Atlas alpha'],
199
+ ],
200
+ },
169
201
  showChunkBorders: {
170
202
  text: 'Chunk borders'
171
203
  },
@@ -301,7 +333,8 @@ export const RENDERER_RENDER_GUI_SECTIONS: ReadonlyArray<{
301
333
  title: 'Renderer debug',
302
334
  keys: [
303
335
  'rendererFuturisticReveal',
304
- 'rendererPerfDebugOverlay'
336
+ 'rendererPerfDebugOverlay',
337
+ 'rendererShaderCubeDebugMode',
305
338
  ]
306
339
  }
307
340
  ]
@@ -38,7 +38,11 @@ export type {
38
38
  RendererDefaultOptionKey,
39
39
  RendererGpuPreference,
40
40
  RendererMesherPipeline,
41
+ RendererShaderCubeDebugMode,
41
42
  RendererOptionMeta,
42
43
  RendererStorageOptions
43
44
  } from './defaultOptions'
44
- export { gpuPreferenceToWebGLPowerPreference } from './defaultOptions'
45
+ export {
46
+ gpuPreferenceToWebGLPowerPreference,
47
+ rendererShaderCubeDebugModeToValue
48
+ } from './defaultOptions'
@@ -121,10 +121,13 @@ export function resolveFaceTileIndex(
121
121
  return texMapping.tileIndexFromTextureEntry(entry)
122
122
  }
123
123
 
124
- /** Tints via esbuild-data (worker plugin, web-client rsbuild alias, vitest alias). */
124
+ /** Main thread + worker: use `loadedData` set by the app / mesher (see mesherWasm). */
125
125
  function getTintsJson(): Record<string, any> {
126
- const mod = require('esbuild-data') as { tints?: Record<string, any>, default?: { tints?: Record<string, any> } }
127
- return mod.tints ?? mod.default?.tints ?? {}
126
+ const tints = (globalThis as any).loadedData?.tints
127
+ if (!tints) {
128
+ throw new Error('shaderCubeBridge: globalThis.loadedData.tints is not available yet')
129
+ }
130
+ return tints
128
131
  }
129
132
 
130
133
  export function getShaderCubeResources(): {