@@ -32,31 +32,44 @@ const toMajorVersion = version => {
3232export const worldCleanup = buildCleanupDecorator ( 'resetWorld' )
3333
3434export const defaultWorldRendererConfig = {
35+ // Debug settings
3536 showChunkBorders : false ,
37+ enableDebugOverlay : false ,
38+
39+ // Performance settings
3640 mesherWorkers : 4 ,
37- isPlayground : false ,
38- renderEars : true ,
39- skinTexturesProxy : undefined as string | undefined ,
40- // game renderer setting actually
41- showHand : false ,
42- viewBobbing : false ,
43- extraBlockRenderers : true ,
44- clipWorldBelowY : undefined as number | undefined ,
41+ addChunksBatchWaitTime : 200 ,
42+ _experimentalSmoothChunkLoading : true ,
43+ _renderByChunks : false ,
44+
45+ // Rendering engine settings
46+ dayCycle : true ,
4547 smoothLighting : true ,
4648 enableLighting : true ,
4749 starfield : true ,
48- addChunksBatchWaitTime : 200 ,
49- vrSupport : true ,
50- vrPageGameRendering : true ,
5150 renderEntities : true ,
51+ extraBlockRenderers : true ,
52+ foreground : true ,
5253 fov : 75 ,
53- fetchPlayerSkins : true ,
54+ volume : 1 ,
55+
56+ // Camera visual related settings
57+ showHand : false ,
58+ viewBobbing : false ,
59+ renderEars : true ,
5460 highlightBlockColor : 'blue' ,
55- foreground : true ,
56- enableDebugOverlay : false ,
57- _experimentalSmoothChunkLoading : true ,
58- _renderByChunks : false ,
59- volume : 1
61+
62+ // Player models
63+ fetchPlayerSkins : true ,
64+ skinTexturesProxy : undefined as string | undefined ,
65+
66+ // VR settings
67+ vrSupport : true ,
68+ vrPageGameRendering : true ,
69+
70+ // World settings
71+ clipWorldBelowY : undefined as number | undefined ,
72+ isPlayground : false
6073}
6174
6275export type WorldRendererConfig = typeof defaultWorldRendererConfig
@@ -496,6 +509,10 @@ export abstract class WorldRendererCommon<WorkerSend = any, WorkerReceive = any>
496509
497510 timeUpdated ? ( newTime : number ) : void
498511
512+ biomeUpdated ? ( biome : any ) : void
513+
514+ biomeReset ? ( ) : void
515+
499516 updateViewerPosition ( pos : Vec3 ) {
500517 this . viewerChunkPosition = pos
501518 for ( const [ key , value ] of Object . entries ( this . loadedChunks ) ) {
@@ -817,12 +834,9 @@ export abstract class WorldRendererCommon<WorkerSend = any, WorkerReceive = any>
817834 } )
818835
819836 worldEmitter . on ( 'time' , ( timeOfDay ) => {
837+ if ( ! this . worldRendererConfig . dayCycle ) return
820838 this . timeUpdated ?.( timeOfDay )
821839
822- if ( timeOfDay < 0 || timeOfDay > 24_000 ) {
823- throw new Error ( 'Invalid time of day. It should be between 0 and 24000.' )
824- }
825-
826840 this . timeOfTheDay = timeOfDay
827841
828842 // if (this.worldRendererConfig.skyLight === skyLight) return
@@ -831,6 +845,14 @@ export abstract class WorldRendererCommon<WorkerSend = any, WorkerReceive = any>
831845 // (this).rerenderAllChunks?.()
832846 // }
833847 } )
848+
849+ worldEmitter . on ( 'biomeUpdate' , ( { biome } ) => {
850+ this . biomeUpdated ?.( biome )
851+ } )
852+
853+ worldEmitter . on ( 'biomeReset' , ( ) => {
854+ this . biomeReset ?.( )
855+ } )
834856 }
835857
836858 setBlockStateIdInner ( pos : Vec3 , stateId : number | undefined , needAoRecalculation = true ) {
0 commit comments