add a way to disable sky box for old behavior (not tested)
This commit is contained in:
parent
1525fac2a1
commit
c4097975bf
5 changed files with 34 additions and 2 deletions
|
|
@ -47,6 +47,7 @@ export const defaultWorldRendererConfig = {
|
|||
smoothLighting: true,
|
||||
enableLighting: true,
|
||||
starfield: true,
|
||||
defaultSkybox: true,
|
||||
renderEntities: true,
|
||||
extraBlockRenderers: true,
|
||||
foreground: true,
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ export class SkyboxRenderer {
|
|||
private fogBrightness = 0
|
||||
private prevFogBrightness = 0
|
||||
|
||||
constructor (private readonly scene: THREE.Scene, public initialImage: string | null) {
|
||||
constructor (private readonly scene: THREE.Scene, public defaultSkybox: boolean, public initialImage: string | null) {
|
||||
if (!initialImage) {
|
||||
this.createGradientSky()
|
||||
}
|
||||
|
|
@ -119,6 +119,12 @@ export class SkyboxRenderer {
|
|||
this.updateSkyColors()
|
||||
}
|
||||
|
||||
// Update default skybox setting
|
||||
updateDefaultSkybox (defaultSkybox: boolean) {
|
||||
this.defaultSkybox = defaultSkybox
|
||||
this.updateSkyColors()
|
||||
}
|
||||
|
||||
private createGradientSky () {
|
||||
const size = 64
|
||||
const scale = 256 / size + 2
|
||||
|
|
@ -279,6 +285,23 @@ export class SkyboxRenderer {
|
|||
private updateSkyColors () {
|
||||
if (!this.skyMesh || !this.voidMesh) return
|
||||
|
||||
// If default skybox is disabled, hide the skybox meshes
|
||||
if (!this.defaultSkybox) {
|
||||
this.skyMesh.visible = false
|
||||
this.voidMesh.visible = false
|
||||
if (this.mesh) {
|
||||
this.mesh.visible = false
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// Show skybox meshes when default skybox is enabled
|
||||
this.skyMesh.visible = true
|
||||
this.voidMesh.visible = true
|
||||
if (this.mesh) {
|
||||
this.mesh.visible = true
|
||||
}
|
||||
|
||||
// Update fog brightness with smooth transition
|
||||
this.prevFogBrightness = this.fogBrightness
|
||||
const renderDistance = this.viewDistance / 32
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ export class WorldRendererThree extends WorldRendererCommon {
|
|||
this.holdingBlockLeft = new HoldingBlock(this, true)
|
||||
|
||||
// Initialize skybox renderer
|
||||
this.skyboxRenderer = new SkyboxRenderer(this.scene, null)
|
||||
this.skyboxRenderer = new SkyboxRenderer(this.scene, this.worldRendererConfig.defaultSkybox, null)
|
||||
void this.skyboxRenderer.init()
|
||||
|
||||
this.addDebugOverlay()
|
||||
|
|
@ -206,6 +206,9 @@ export class WorldRendererThree extends WorldRendererCommon {
|
|||
this.onReactiveConfigUpdated('showChunkBorders', (value) => {
|
||||
this.updateShowChunksBorder(value)
|
||||
})
|
||||
this.onReactiveConfigUpdated('defaultSkybox', (value) => {
|
||||
this.skyboxRenderer.updateDefaultSkybox(value)
|
||||
})
|
||||
}
|
||||
|
||||
changeHandSwingingState (isAnimationPlaying: boolean, isLeft = false) {
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ export const defaultOptions = {
|
|||
renderEars: true,
|
||||
lowMemoryMode: false,
|
||||
starfieldRendering: true,
|
||||
defaultSkybox: true,
|
||||
enabledResourcepack: null as string | null,
|
||||
useVersionsTextures: 'latest',
|
||||
serverResourcePacks: 'prompt' as 'prompt' | 'always' | 'never',
|
||||
|
|
|
|||
|
|
@ -116,6 +116,10 @@ export const watchOptionsAfterViewerInit = () => {
|
|||
appViewer.inWorldRenderingConfig.starfield = o.starfieldRendering
|
||||
})
|
||||
|
||||
watchValue(options, o => {
|
||||
appViewer.inWorldRenderingConfig.defaultSkybox = o.defaultSkybox
|
||||
})
|
||||
|
||||
watchValue(options, o => {
|
||||
// appViewer.inWorldRenderingConfig.neighborChunkUpdates = o.neighborChunkUpdates
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue